OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 | 5 |
6 #include "ui/gfx/gl/gl_bindings_skia_in_process.h" | 6 #include "ui/gfx/gl/gl_bindings_skia_in_process.h" |
7 | 7 |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "ui/gfx/gl/gl_bindings.h" | 9 #include "ui/gfx/gl/gl_bindings.h" |
10 #include "ui/gfx/gl/gl_implementation.h" | 10 #include "ui/gfx/gl/gl_implementation.h" |
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
462 } | 462 } |
463 | 463 |
464 GLvoid StubGLViewport(GLint x, GLint y, GLsizei width, GLsizei height) { | 464 GLvoid StubGLViewport(GLint x, GLint y, GLsizei width, GLsizei height) { |
465 glViewport(x, y, width, height); | 465 glViewport(x, y, width, height); |
466 } | 466 } |
467 } // extern "C" | 467 } // extern "C" |
468 } // namespace | 468 } // namespace |
469 | 469 |
470 namespace gfx { | 470 namespace gfx { |
471 | 471 |
472 GrGLInterface* GetInProcessSkiaGLBinding() { | 472 GrGLInterface* CreateInProcessSkiaGLBinding() { |
473 static SkAutoTUnref<GrGLInterface> host_gl_interface; | 473 GrGLBinding binding; |
474 if (NULL == host_gl_interface.get()) { | 474 switch (gfx::GetGLImplementation()) { |
475 GrGLBinding binding; | 475 case gfx::kGLImplementationNone: |
476 switch (gfx::GetGLImplementation()) { | 476 NOTREACHED(); |
477 case gfx::kGLImplementationNone: | 477 return NULL; |
478 NOTREACHED(); | 478 case gfx::kGLImplementationDesktopGL: |
479 return NULL; | 479 binding = kDesktop_GrGLBinding; |
480 case gfx::kGLImplementationDesktopGL: | 480 break; |
481 binding = kDesktop_GrGLBinding; | 481 case gfx::kGLImplementationOSMesaGL: |
482 break; | 482 binding = kDesktop_GrGLBinding; |
483 case gfx::kGLImplementationOSMesaGL: | 483 break; |
484 binding = kDesktop_GrGLBinding; | 484 case gfx::kGLImplementationEGLGLES2: |
485 break; | 485 binding = kES2_GrGLBinding; |
486 case gfx::kGLImplementationEGLGLES2: | 486 break; |
487 binding = kES2_GrGLBinding; | 487 case gfx::kGLImplementationMockGL: |
488 break; | 488 NOTREACHED(); |
489 case gfx::kGLImplementationMockGL: | 489 return NULL; |
490 NOTREACHED(); | 490 default: |
491 return NULL; | 491 NOTREACHED(); |
492 default: | 492 return NULL; |
493 NOTREACHED(); | 493 } |
494 return NULL; | |
495 } | |
496 | 494 |
497 GrGLInterface* interface = new GrGLInterface; | 495 GrGLInterface* interface = new GrGLInterface; |
498 host_gl_interface.reset(interface); | |
499 | 496 |
500 interface->fBindingsExported = binding; | 497 interface->fBindingsExported = binding; |
501 interface->fActiveTexture = StubGLActiveTexture; | 498 interface->fActiveTexture = StubGLActiveTexture; |
502 interface->fAttachShader = StubGLAttachShader; | 499 interface->fAttachShader = StubGLAttachShader; |
503 interface->fBindAttribLocation = StubGLBindAttribLocation; | 500 interface->fBindAttribLocation = StubGLBindAttribLocation; |
504 interface->fBindBuffer = StubGLBindBuffer; | 501 interface->fBindBuffer = StubGLBindBuffer; |
505 interface->fBindTexture = StubGLBindTexture; | 502 interface->fBindTexture = StubGLBindTexture; |
506 interface->fBlendColor = StubGLBlendColor; | 503 interface->fBlendColor = StubGLBlendColor; |
507 interface->fBlendFunc = StubGLBlendFunc; | 504 interface->fBlendFunc = StubGLBlendFunc; |
508 interface->fBufferData = StubGLBufferData; | 505 interface->fBufferData = StubGLBufferData; |
509 interface->fBufferSubData = StubGLBufferSubData; | 506 interface->fBufferSubData = StubGLBufferSubData; |
510 interface->fClear = StubGLClear; | 507 interface->fClear = StubGLClear; |
511 interface->fClearColor = StubGLClearColor; | 508 interface->fClearColor = StubGLClearColor; |
512 interface->fClearStencil = StubGLClearStencil; | 509 interface->fClearStencil = StubGLClearStencil; |
513 interface->fColorMask = StubGLColorMask; | 510 interface->fColorMask = StubGLColorMask; |
514 interface->fCompileShader = StubGLCompileShader; | 511 interface->fCompileShader = StubGLCompileShader; |
515 interface->fCompressedTexImage2D = StubGLCompressedTexImage2D; | 512 interface->fCompressedTexImage2D = StubGLCompressedTexImage2D; |
516 interface->fCreateProgram = StubGLCreateProgram; | 513 interface->fCreateProgram = StubGLCreateProgram; |
517 interface->fCreateShader = StubGLCreateShader; | 514 interface->fCreateShader = StubGLCreateShader; |
518 interface->fCullFace = StubGLCullFace; | 515 interface->fCullFace = StubGLCullFace; |
519 interface->fDeleteBuffers = StubGLDeleteBuffers; | 516 interface->fDeleteBuffers = StubGLDeleteBuffers; |
520 interface->fDeleteProgram = StubGLDeleteProgram; | 517 interface->fDeleteProgram = StubGLDeleteProgram; |
521 interface->fDeleteShader = StubGLDeleteShader; | 518 interface->fDeleteShader = StubGLDeleteShader; |
522 interface->fDeleteTextures = StubGLDeleteTextures; | 519 interface->fDeleteTextures = StubGLDeleteTextures; |
523 interface->fDepthMask = StubGLDepthMask; | 520 interface->fDepthMask = StubGLDepthMask; |
524 interface->fDisable = StubGLDisable; | 521 interface->fDisable = StubGLDisable; |
525 interface->fDisableVertexAttribArray = StubGLDisableVertexAttribArray; | 522 interface->fDisableVertexAttribArray = StubGLDisableVertexAttribArray; |
526 interface->fDrawArrays = StubGLDrawArrays; | 523 interface->fDrawArrays = StubGLDrawArrays; |
527 interface->fDrawBuffer = StubGLDrawBuffer; | 524 interface->fDrawBuffer = StubGLDrawBuffer; |
528 interface->fDrawBuffers = StubGLDrawBuffers; | 525 interface->fDrawBuffers = StubGLDrawBuffers; |
529 interface->fDrawElements = StubGLDrawElements; | 526 interface->fDrawElements = StubGLDrawElements; |
530 interface->fEnable = StubGLEnable; | 527 interface->fEnable = StubGLEnable; |
531 interface->fEnableVertexAttribArray = StubGLEnableVertexAttribArray; | 528 interface->fEnableVertexAttribArray = StubGLEnableVertexAttribArray; |
532 interface->fFrontFace = StubGLFrontFace; | 529 interface->fFrontFace = StubGLFrontFace; |
533 interface->fGenBuffers = StubGLGenBuffers; | 530 interface->fGenBuffers = StubGLGenBuffers; |
534 interface->fGenTextures = StubGLGenTextures; | 531 interface->fGenTextures = StubGLGenTextures; |
535 interface->fGetBufferParameteriv = StubGLGetBufferParameteriv; | 532 interface->fGetBufferParameteriv = StubGLGetBufferParameteriv; |
536 interface->fGetError = StubGLGetError; | 533 interface->fGetError = StubGLGetError; |
537 interface->fGetIntegerv = StubGLGetIntegerv; | 534 interface->fGetIntegerv = StubGLGetIntegerv; |
538 interface->fGetProgramInfoLog = StubGLGetProgramInfoLog; | 535 interface->fGetProgramInfoLog = StubGLGetProgramInfoLog; |
539 interface->fGetProgramiv = StubGLGetProgramiv; | 536 interface->fGetProgramiv = StubGLGetProgramiv; |
540 interface->fGetShaderInfoLog = StubGLGetShaderInfoLog; | 537 interface->fGetShaderInfoLog = StubGLGetShaderInfoLog; |
541 interface->fGetShaderiv = StubGLGetShaderiv; | 538 interface->fGetShaderiv = StubGLGetShaderiv; |
542 interface->fGetString = StubGLGetString; | 539 interface->fGetString = StubGLGetString; |
543 interface->fGetTexLevelParameteriv = StubGLGetTexLevelParameteriv; | 540 interface->fGetTexLevelParameteriv = StubGLGetTexLevelParameteriv; |
544 interface->fGetUniformLocation = StubGLGetUniformLocation; | 541 interface->fGetUniformLocation = StubGLGetUniformLocation; |
545 interface->fLineWidth = StubGLLineWidth; | 542 interface->fLineWidth = StubGLLineWidth; |
546 interface->fLinkProgram = StubGLLinkProgram; | 543 interface->fLinkProgram = StubGLLinkProgram; |
547 interface->fPixelStorei = StubGLPixelStorei; | 544 interface->fPixelStorei = StubGLPixelStorei; |
548 interface->fReadBuffer = StubGLReadBuffer; | 545 interface->fReadBuffer = StubGLReadBuffer; |
549 interface->fReadPixels = StubGLReadPixels; | 546 interface->fReadPixels = StubGLReadPixels; |
550 interface->fScissor = StubGLScissor; | 547 interface->fScissor = StubGLScissor; |
551 interface->fShaderSource = StubGLShaderSource; | 548 interface->fShaderSource = StubGLShaderSource; |
552 interface->fStencilFunc = StubGLStencilFunc; | 549 interface->fStencilFunc = StubGLStencilFunc; |
553 interface->fStencilFuncSeparate = StubGLStencilFuncSeparate; | 550 interface->fStencilFuncSeparate = StubGLStencilFuncSeparate; |
554 interface->fStencilMask = StubGLStencilMask; | 551 interface->fStencilMask = StubGLStencilMask; |
555 interface->fStencilMaskSeparate = StubGLStencilMaskSeparate; | 552 interface->fStencilMaskSeparate = StubGLStencilMaskSeparate; |
556 interface->fStencilOp = StubGLStencilOp; | 553 interface->fStencilOp = StubGLStencilOp; |
557 interface->fStencilOpSeparate = StubGLStencilOpSeparate; | 554 interface->fStencilOpSeparate = StubGLStencilOpSeparate; |
558 interface->fTexImage2D = StubGLTexImage2D; | 555 interface->fTexImage2D = StubGLTexImage2D; |
559 interface->fTexParameteri = StubGLTexParameteri; | 556 interface->fTexParameteri = StubGLTexParameteri; |
560 interface->fTexSubImage2D = StubGLTexSubImage2D; | 557 interface->fTexSubImage2D = StubGLTexSubImage2D; |
561 interface->fUniform1f = StubGLUniform1f; | 558 interface->fUniform1f = StubGLUniform1f; |
562 interface->fUniform1i = StubGLUniform1i; | 559 interface->fUniform1i = StubGLUniform1i; |
563 interface->fUniform1fv = StubGLUniform1fv; | 560 interface->fUniform1fv = StubGLUniform1fv; |
564 interface->fUniform1iv = StubGLUniform1iv; | 561 interface->fUniform1iv = StubGLUniform1iv; |
565 interface->fUniform2f = StubGLUniform2f; | 562 interface->fUniform2f = StubGLUniform2f; |
566 interface->fUniform2i = StubGLUniform2i; | 563 interface->fUniform2i = StubGLUniform2i; |
567 interface->fUniform2fv = StubGLUniform2fv; | 564 interface->fUniform2fv = StubGLUniform2fv; |
568 interface->fUniform2iv = StubGLUniform2iv; | 565 interface->fUniform2iv = StubGLUniform2iv; |
569 interface->fUniform3f = StubGLUniform3f; | 566 interface->fUniform3f = StubGLUniform3f; |
570 interface->fUniform3i = StubGLUniform3i; | 567 interface->fUniform3i = StubGLUniform3i; |
571 interface->fUniform3fv = StubGLUniform3fv; | 568 interface->fUniform3fv = StubGLUniform3fv; |
572 interface->fUniform3iv = StubGLUniform3iv; | 569 interface->fUniform3iv = StubGLUniform3iv; |
573 interface->fUniform4f = StubGLUniform4f; | 570 interface->fUniform4f = StubGLUniform4f; |
574 interface->fUniform4i = StubGLUniform4i; | 571 interface->fUniform4i = StubGLUniform4i; |
575 interface->fUniform4fv = StubGLUniform4fv; | 572 interface->fUniform4fv = StubGLUniform4fv; |
576 interface->fUniform4iv = StubGLUniform4iv; | 573 interface->fUniform4iv = StubGLUniform4iv; |
577 interface->fUniformMatrix2fv = StubGLUniformMatrix2fv; | 574 interface->fUniformMatrix2fv = StubGLUniformMatrix2fv; |
578 interface->fUniformMatrix3fv = StubGLUniformMatrix3fv; | 575 interface->fUniformMatrix3fv = StubGLUniformMatrix3fv; |
579 interface->fUniformMatrix4fv = StubGLUniformMatrix4fv; | 576 interface->fUniformMatrix4fv = StubGLUniformMatrix4fv; |
580 interface->fUseProgram = StubGLUseProgram; | 577 interface->fUseProgram = StubGLUseProgram; |
581 interface->fVertexAttrib4fv = StubGLVertexAttrib4fv; | 578 interface->fVertexAttrib4fv = StubGLVertexAttrib4fv; |
582 interface->fVertexAttribPointer = StubGLVertexAttribPointer; | 579 interface->fVertexAttribPointer = StubGLVertexAttribPointer; |
583 interface->fViewport = StubGLViewport; | 580 interface->fViewport = StubGLViewport; |
584 interface->fBindFramebuffer = StubGLBindFramebuffer; | 581 interface->fBindFramebuffer = StubGLBindFramebuffer; |
585 interface->fBindRenderbuffer = StubGLBindRenderbuffer; | 582 interface->fBindRenderbuffer = StubGLBindRenderbuffer; |
586 interface->fCheckFramebufferStatus = StubGLCheckFramebufferStatus; | 583 interface->fCheckFramebufferStatus = StubGLCheckFramebufferStatus; |
587 interface->fDeleteFramebuffers = StubGLDeleteFramebuffers; | 584 interface->fDeleteFramebuffers = StubGLDeleteFramebuffers; |
588 interface->fDeleteRenderbuffers = StubGLDeleteRenderbuffers; | 585 interface->fDeleteRenderbuffers = StubGLDeleteRenderbuffers; |
589 interface->fFramebufferRenderbuffer = StubGLFramebufferRenderbuffer; | 586 interface->fFramebufferRenderbuffer = StubGLFramebufferRenderbuffer; |
590 interface->fFramebufferTexture2D = StubGLFramebufferTexture2D; | 587 interface->fFramebufferTexture2D = StubGLFramebufferTexture2D; |
591 interface->fGenFramebuffers = StubGLGenFramebuffers; | 588 interface->fGenFramebuffers = StubGLGenFramebuffers; |
592 interface->fGenRenderbuffers = StubGLGenRenderbuffers; | 589 interface->fGenRenderbuffers = StubGLGenRenderbuffers; |
593 interface->fGetFramebufferAttachmentParameteriv = | 590 interface->fGetFramebufferAttachmentParameteriv = |
594 StubGLGetFramebufferAttachmentParameteriv; | 591 StubGLGetFramebufferAttachmentParameteriv; |
595 interface->fGetRenderbufferParameteriv = StubGLGetRenderbufferParameteriv; | 592 interface->fGetRenderbufferParameteriv = StubGLGetRenderbufferParameteriv; |
596 interface->fRenderbufferStorage = StubGLRenderbufferStorage; | 593 interface->fRenderbufferStorage = StubGLRenderbufferStorage; |
597 interface->fRenderbufferStorageMultisample = | 594 interface->fRenderbufferStorageMultisample = |
598 StubGLRenderbufferStorageMultisample; | 595 StubGLRenderbufferStorageMultisample; |
599 interface->fBlitFramebuffer = StubGLBlitFramebuffer; | 596 interface->fBlitFramebuffer = StubGLBlitFramebuffer; |
600 interface->fMapBuffer = StubGLMapBuffer; | 597 interface->fMapBuffer = StubGLMapBuffer; |
601 interface->fUnmapBuffer = StubGLUnmapBuffer; | 598 interface->fUnmapBuffer = StubGLUnmapBuffer; |
602 interface->fBindFragDataLocationIndexed = | 599 interface->fBindFragDataLocationIndexed = |
603 StubBindFragDataLocationIndexedARB; | 600 StubBindFragDataLocationIndexedARB; |
604 } | 601 return interface; |
605 return host_gl_interface.get(); | |
606 } | 602 } |
607 | 603 |
608 } // namespace gfx | 604 } // namespace gfx |
609 | 605 |
OLD | NEW |