Changeset 101578 in webkit


Ignore:
Timestamp:
Nov 30, 2011 5:37:20 PM (12 years ago)
Author:
kbr@google.com
Message:

Implement draft WEBGL_compressed_textures WebGL extension
https://bugs.webkit.org/show_bug.cgi?id=72086

Patch by Gregg Tavares <gman@google.com> on 2011-11-30
Reviewed by Kenneth Russell.

Source/WebCore:

No new tests. Will write final test once on hardware.

  • CMakeLists.txt:
  • DerivedSources.make:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.gypi:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSWebGLRenderingContextCustom.cpp:

(WebCore::toJS):

  • bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:

(WebCore::toV8Object):

  • html/canvas/WebGLCompressedTextures.cpp: Added.

(WebCore::WebGLCompressedTextures::WebGLCompressedTextures):
(WebCore::WebGLCompressedTextures::~WebGLCompressedTextures):
(WebCore::WebGLCompressedTextures::getName):
(WebCore::WebGLCompressedTextures::create):
(WebCore::WebGLCompressedTextures::supported):
(WebCore::WebGLCompressedTextures::validateCompressedTexFormat):
(WebCore::WebGLCompressedTextures::validateCompressedTexFuncData):
(WebCore::WebGLCompressedTextures::validateCompressedTexSubDimensions):
(WebCore::WebGLCompressedTextures::compressedTexImage2D):
(WebCore::WebGLCompressedTextures::compressedTexSubImage2D):
(WebCore::WebGLCompressedTextures::getCompressedTextureFormats):

  • html/canvas/WebGLCompressedTextures.h: Added.
  • html/canvas/WebGLCompressedTextures.idl: Added.
  • html/canvas/WebGLExtension.h:
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getParameter):
(WebCore::WebGLRenderingContext::getSupportedExtensions):

  • html/canvas/WebGLRenderingContext.h:
  • platform/graphics/Extensions3D.h:
  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/efl/GraphicsContext3DEfl.cpp:

(WebCore::GraphicsContext3D::compressedTexImage2D):
(WebCore::GraphicsContext3D::compressedTexSubImage2D):

  • platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:

(WebCore::GraphicsContext3D::compressedTexImage2D):
(WebCore::GraphicsContext3D::compressedTexSubImage2D):

  • platform/graphics/qt/GraphicsContext3DQt.cpp:

(WebCore::GraphicsContext3D::compressedTexImage2D):
(WebCore::GraphicsContext3D::compressedTexSubImage2D):

Source/WebKit/chromium:

  • public/WebGraphicsContext3D.h:
  • src/GraphicsContext3DChromium.cpp:
  • src/GraphicsContext3DPrivate.h:
  • tests/MockWebGraphicsContext3D.h:

(WebKit::MockWebGraphicsContext3D::compressedTexImage2D):
(WebKit::MockWebGraphicsContext3D::compressedTexSubImage2D):

Location:
trunk/Source
Files:
3 added
22 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/CMakeLists.txt

    r101517 r101578  
    21472147
    21482148        html/canvas/WebGLBuffer.cpp
     2149        html/canvas/WebGLCompressedTextures.cpp
    21492150        html/canvas/WebGLContextAttributes.cpp
    21502151        html/canvas/WebGLContextEvent.cpp
     
    21782179        html/canvas/WebGLActiveInfo.idl
    21792180        html/canvas/WebGLBuffer.idl
     2181        html/canvas/WebGLCompressedTextures.idl
    21802182        html/canvas/WebGLContextAttributes.idl
    21812183        html/canvas/WebGLContextEvent.idl
  • trunk/Source/WebCore/ChangeLog

    r101576 r101578  
     12011-11-30  Gregg Tavares  <gman@google.com>
     2
     3        Implement draft WEBGL_compressed_textures WebGL extension
     4        https://bugs.webkit.org/show_bug.cgi?id=72086
     5
     6        Reviewed by Kenneth Russell.
     7
     8        No new tests. Will write final test once on hardware.
     9
     10        * CMakeLists.txt:
     11        * DerivedSources.make:
     12        * GNUmakefile.list.am:
     13        * Target.pri:
     14        * WebCore.gypi:
     15        * WebCore.xcodeproj/project.pbxproj:
     16        * bindings/js/JSWebGLRenderingContextCustom.cpp:
     17        (WebCore::toJS):
     18        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
     19        (WebCore::toV8Object):
     20        * html/canvas/WebGLCompressedTextures.cpp: Added.
     21        (WebCore::WebGLCompressedTextures::WebGLCompressedTextures):
     22        (WebCore::WebGLCompressedTextures::~WebGLCompressedTextures):
     23        (WebCore::WebGLCompressedTextures::getName):
     24        (WebCore::WebGLCompressedTextures::create):
     25        (WebCore::WebGLCompressedTextures::supported):
     26        (WebCore::WebGLCompressedTextures::validateCompressedTexFormat):
     27        (WebCore::WebGLCompressedTextures::validateCompressedTexFuncData):
     28        (WebCore::WebGLCompressedTextures::validateCompressedTexSubDimensions):
     29        (WebCore::WebGLCompressedTextures::compressedTexImage2D):
     30        (WebCore::WebGLCompressedTextures::compressedTexSubImage2D):
     31        (WebCore::WebGLCompressedTextures::getCompressedTextureFormats):
     32        * html/canvas/WebGLCompressedTextures.h: Added.
     33        * html/canvas/WebGLCompressedTextures.idl: Added.
     34        * html/canvas/WebGLExtension.h:
     35        * html/canvas/WebGLRenderingContext.cpp:
     36        (WebCore::WebGLRenderingContext::getExtension):
     37        (WebCore::WebGLRenderingContext::getParameter):
     38        (WebCore::WebGLRenderingContext::getSupportedExtensions):
     39        * html/canvas/WebGLRenderingContext.h:
     40        * platform/graphics/Extensions3D.h:
     41        * platform/graphics/GraphicsContext3D.h:
     42        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
     43        (WebCore::GraphicsContext3D::compressedTexImage2D):
     44        (WebCore::GraphicsContext3D::compressedTexSubImage2D):
     45        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
     46        (WebCore::GraphicsContext3D::compressedTexImage2D):
     47        (WebCore::GraphicsContext3D::compressedTexSubImage2D):
     48        * platform/graphics/qt/GraphicsContext3DQt.cpp:
     49        (WebCore::GraphicsContext3D::compressedTexImage2D):
     50        (WebCore::GraphicsContext3D::compressedTexSubImage2D):
     51
    1522011-11-18  Nat Duca  <nduca@chromium.org>
    253
  • trunk/Source/WebCore/DerivedSources.make

    r101144 r101578  
    528528    WebGLActiveInfo \
    529529    WebGLBuffer \
     530    WebGLCompressedTextures \
    530531    WebGLContextAttributes \
    531532    WebGLContextEvent \
  • trunk/Source/WebCore/GNUmakefile.list.am

    r101548 r101578  
    49854985        Source/WebCore/html/canvas/WebGLBuffer.cpp \
    49864986        Source/WebCore/html/canvas/WebGLBuffer.h \
     4987        Source/WebCore/html/canvas/WebGLCompressedTextures.cpp \
     4988        Source/WebCore/html/canvas/WebGLCompressedTextures.h \
    49874989        Source/WebCore/html/canvas/WebGLContextAttributes.cpp \
    49884990        Source/WebCore/html/canvas/WebGLContextAttributes.h \
  • trunk/Source/WebCore/Target.pri

    r101517 r101578  
    36293629        html/canvas/WebGLActiveInfo.h \
    36303630        html/canvas/WebGLBuffer.h \
     3631        html/canvas/WebGLCompressedTextures.h \
    36313632        html/canvas/WebGLContextAttributes.h \
    36323633        html/canvas/WebGLContextEvent.h \
     
    36653666        html/canvas/WebGLObject.cpp \
    36663667        html/canvas/WebGLBuffer.cpp \
     3668        html/canvas/WebGLCompressedTextures.cpp \
    36673669        html/canvas/WebGLContextAttributes.cpp \
    36683670        html/canvas/WebGLContextEvent.cpp \
  • trunk/Source/WebCore/WebCore.gypi

    r101517 r101578  
    13721372            'html/canvas/WebGLActiveInfo.idl',
    13731373            'html/canvas/WebGLBuffer.idl',
     1374            'html/canvas/WebGLCompressedTextures.idl',
    13741375            'html/canvas/WebGLContextAttributes.idl',
    13751376            'html/canvas/WebGLContextEvent.idl',
     
    57175718            'html/canvas/WebGLBuffer.cpp',
    57185719            'html/canvas/WebGLBuffer.h',
     5720            'html/canvas/WebGLCompressedTextures.cpp',
     5721            'html/canvas/WebGLCompressedTextures.h',
    57195722            'html/canvas/WebGLContextAttributes.cpp',
    57205723            'html/canvas/WebGLContextAttributes.h',
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r101517 r101578  
    17031703                6E21C6C01126338500A7BE02 /* GraphicsContext3D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E21C6BF1126338500A7BE02 /* GraphicsContext3D.cpp */; };
    17041704                6E21C6C21126339900A7BE02 /* GraphicsContext3DCG.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E21C6C11126339900A7BE02 /* GraphicsContext3DCG.cpp */; };
     1705                6E3FAD3814733F4000E42306 /* JSWebGLCompressedTextures.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E3FAD3614733F4000E42306 /* JSWebGLCompressedTextures.cpp */; };
     1706                6E3FAD3914733F4000E42306 /* JSWebGLCompressedTextures.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E3FAD3714733F4000E42306 /* JSWebGLCompressedTextures.h */; };
     1707                6E3FAE8E14733FDB00E42306 /* WebGLCompressedTextures.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E3FAE8C14733FDB00E42306 /* WebGLCompressedTextures.cpp */; };
     1708                6E3FAE8F14733FDB00E42306 /* WebGLCompressedTextures.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E3FAE8D14733FDB00E42306 /* WebGLCompressedTextures.h */; };
    17051709                6E47E66010B7944B00B186C8 /* WebGLGetInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E47E65E10B7944B00B186C8 /* WebGLGetInfo.cpp */; };
    17061710                6E47E66110B7944B00B186C8 /* WebGLGetInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E47E65F10B7944B00B186C8 /* WebGLGetInfo.h */; };
     
    89338937                6E21C6BF1126338500A7BE02 /* GraphicsContext3D.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GraphicsContext3D.cpp; sourceTree = "<group>"; };
    89348938                6E21C6C11126339900A7BE02 /* GraphicsContext3DCG.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GraphicsContext3DCG.cpp; sourceTree = "<group>"; };
     8939                6E3FAD3614733F4000E42306 /* JSWebGLCompressedTextures.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWebGLCompressedTextures.cpp; sourceTree = "<group>"; };
     8940                6E3FAD3714733F4000E42306 /* JSWebGLCompressedTextures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSWebGLCompressedTextures.h; sourceTree = "<group>"; };
     8941                6E3FAE8C14733FDB00E42306 /* WebGLCompressedTextures.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebGLCompressedTextures.cpp; path = canvas/WebGLCompressedTextures.cpp; sourceTree = "<group>"; };
     8942                6E3FAE8D14733FDB00E42306 /* WebGLCompressedTextures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebGLCompressedTextures.h; path = canvas/WebGLCompressedTextures.h; sourceTree = "<group>"; };
     8943                6E3FAE9014733FEA00E42306 /* WebGLCompressedTextures.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = WebGLCompressedTextures.idl; path = canvas/WebGLCompressedTextures.idl; sourceTree = "<group>"; };
    89358944                6E47E65E10B7944B00B186C8 /* WebGLGetInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebGLGetInfo.cpp; path = canvas/WebGLGetInfo.cpp; sourceTree = "<group>"; };
    89368945                6E47E65F10B7944B00B186C8 /* WebGLGetInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebGLGetInfo.h; path = canvas/WebGLGetInfo.h; sourceTree = "<group>"; };
     
    1495514964                                93F6F1EB127F70B10055CB06 /* WebGLContextEvent.h */,
    1495614965                                93F6F1EC127F70B10055CB06 /* WebGLContextEvent.idl */,
     14966                                6E3FAE8C14733FDB00E42306 /* WebGLCompressedTextures.cpp */,
     14967                                6E3FAE8D14733FDB00E42306 /* WebGLCompressedTextures.h */,
     14968                                6E3FAE9014733FEA00E42306 /* WebGLCompressedTextures.idl */,
    1495714969                                6EBF0E5212A8929800DB1709 /* WebGLExtension.cpp */,
    1495814970                                6EBF0E5312A8929800DB1709 /* WebGLExtension.h */,
     
    1790117913                                BC2CBF7A140F1D58003879BE /* JSWebGLContextEvent.cpp */,
    1790217914                                BC2CBF4B140F1A65003879BE /* JSWebGLContextEvent.h */,
     17915                                6E3FAD3614733F4000E42306 /* JSWebGLCompressedTextures.cpp */,
     17916                                6E3FAD3714733F4000E42306 /* JSWebGLCompressedTextures.h */,
    1790317917                                49C7B9841042D2D30009D447 /* JSWebGLFramebuffer.cpp */,
    1790417918                                49C7B9851042D2D30009D447 /* JSWebGLFramebuffer.h */,
     
    2475124765                                5038BF2914750F190095E0D1 /* FilterOperation.h in Headers */,
    2475224766                                5038BF2B14750F190095E0D1 /* FilterOperations.h in Headers */,
     24767                                6E3FAD3914733F4000E42306 /* JSWebGLCompressedTextures.h in Headers */,
     24768                                6E3FAE8F14733FDB00E42306 /* WebGLCompressedTextures.h in Headers */,
    2475324769                        );
    2475424770                        runOnlyForDeploymentPostprocessing = 0;
     
    2762627642                                7AA51DD5148506A900AD2752 /* InspectorMetaAgent.cpp in Sources */,
    2762727643                                5038BF2A14750F190095E0D1 /* FilterOperations.cpp in Sources */,
     27644                                6E3FAD3814733F4000E42306 /* JSWebGLCompressedTextures.cpp in Sources */,
     27645                                6E3FAE8E14733FDB00E42306 /* WebGLCompressedTextures.cpp in Sources */,
    2762827646                        );
    2762927647                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp

    r101295 r101578  
    5757#include "OESVertexArrayObject.h"
    5858#include "WebGLBuffer.h"
     59#include "WebGLCompressedTextures.h"
    5960#include "WebGLDebugRendererInfo.h"
    6061#include "WebGLDebugShaders.h"
     
    194195    case WebGLExtension::WebGLDebugShadersName:
    195196        return toJS(exec, globalObject, static_cast<WebGLDebugShaders*>(extension));
     197    case WebGLExtension::WebKitWebGLCompressedTexturesName:
     198        return toJS(exec, globalObject, static_cast<WebGLCompressedTextures*>(extension));
    196199    }
    197200    ASSERT_NOT_REACHED();
  • trunk/Source/WebCore/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp

    r100191 r101578  
    5757#include "V8Uint8Array.h"
    5858#include "V8WebGLBuffer.h"
     59#include "V8WebGLCompressedTextures.h"
    5960#include "V8WebGLDebugRendererInfo.h"
    6061#include "V8WebGLDebugShaders.h"
     
    193194        referenceName = "webGLDebugShadersName";
    194195        break;
     196    case WebGLExtension::WebKitWebGLCompressedTexturesName:
     197        extensionObject = toV8(static_cast<WebGLCompressedTextures*>(extension));
     198        referenceName = "webKitWebGLCompressedTexturesName";
     199        break;
    195200    }
    196201    ASSERT(!extensionObject.IsEmpty());
  • trunk/Source/WebCore/html/canvas/WebGLExtension.h

    r100191 r101578  
    4141        WebGLDebugRendererInfoName,
    4242        WebGLDebugShadersName,
     43        WebKitWebGLCompressedTexturesName, // WEBKIT_ prefix until extension is official
    4344    };
    4445
  • trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp

    r101311 r101578  
    5555#include "WebGLActiveInfo.h"
    5656#include "WebGLBuffer.h"
     57#include "WebGLCompressedTextures.h"
    5758#include "WebGLContextAttributes.h"
    5859#include "WebGLContextEvent.h"
     
    21282129            m_webkitLoseContext = WebKitLoseContext::create(this);
    21292130        return m_webkitLoseContext.get();
     2131    }
     2132    if (equalIgnoringCase(name, "WEBKIT_WEBGL_compressed_textures")) {
     2133        // Use WEBKIT_ prefix until extension is official.
     2134        if (!m_webglCompressedTextures)
     2135            m_webglCompressedTextures = WebGLCompressedTextures::create(this);
     2136        return m_webglCompressedTextures.get();
    21302137    }
    21312138
     
    22402247        return getBooleanArrayParameter(pname);
    22412248    case GraphicsContext3D::COMPRESSED_TEXTURE_FORMATS:
     2249        if (m_webglCompressedTextures)
     2250            return m_webglCompressedTextures->getCompressedTextureFormats();
    22422251        // Defined as null in the spec
    22432252        return WebGLGetInfo();
     
    25712580        result.append("OES_vertex_array_object");
    25722581    result.append("WEBKIT_lose_context");
     2582    if (WebGLCompressedTextures::supported(this))
     2583        result.append("WEBKIT_WEBGL_compressed_textures");
    25732584
    25742585    if (allowPrivilegedExtensions()) {
  • trunk/Source/WebCore/html/canvas/WebGLRenderingContext.h

    r101295 r101578  
    5151class WebGLActiveInfo;
    5252class WebGLBuffer;
     53class WebGLCompressedTextures;
    5354class WebGLContextAttributes;
    5455class WebGLDebugRendererInfo;
     
    312313    friend class OESVertexArrayObject;
    313314    friend class WebGLDebugShaders;
     315    friend class WebGLCompressedTextures;
    314316
    315317    WebGLRenderingContext(HTMLCanvasElement*, PassRefPtr<GraphicsContext3D>, GraphicsContext3D::Attributes);
     
    486488    OwnPtr<WebGLDebugRendererInfo> m_webglDebugRendererInfo;
    487489    OwnPtr<WebGLDebugShaders> m_webglDebugShaders;
     490    OwnPtr<WebGLCompressedTextures> m_webglCompressedTextures;
    488491
    489492    // Helpers for getParameter and others
  • trunk/Source/WebCore/platform/graphics/Extensions3D.h

    r101035 r101578  
    6262    //     this only on Mac OS X to limit the amount of code dependent
    6363    //     on this extension)
     64    //   GL_EXT_texture_compression_dxt1
     65    //   GL_EXT_texture_compression_s3tc
     66    //   GL_OES_compressed_ETC1_RGB8_texture
     67    //   GL_IMG_texture_compression_pvrtc
    6468
    6569    // Takes full name of extension; for example,
     
    116120        TEXTURE_RECTANGLE_ARB =  0x84F5,
    117121        TEXTURE_BINDING_RECTANGLE_ARB = 0x84F6,
     122
     123        // GL_EXT_texture_compression_dxt1
     124        // GL_EXT_texture_compression_s3tc
     125        COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0,
     126        COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1,
     127        COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2,
     128        COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3,
     129
     130        // GL_OES_compressed_ETC1_RGB8_texture
     131        ETC1_RGB8_OES = 0x8D64,
     132
     133        // GL_IMG_texture_compression_pvrtc
     134        COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00,
     135        COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01,
     136        COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02,
     137        COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03,
    118138    };
    119139
  • trunk/Source/WebCore/platform/graphics/GraphicsContext3D.h

    r101548 r101578  
    654654    void compileShader(Platform3DObject);
    655655
    656     // void compressedTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dint border, GC3Dsizei imageSize, const void* data);
    657     // void compressedTexSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Dsizei imageSize, const void* data);
    658 
     656    void compressedTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dint border, GC3Dsizei imageSize, const void* data);
     657    void compressedTexSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Dsizei imageSize, const void* data);
    659658    void copyTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height, GC3Dint border);
    660659    void copyTexSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height);
  • trunk/Source/WebCore/platform/graphics/efl/GraphicsContext3DEfl.cpp

    r100191 r101578  
    197197}
    198198
     199void GraphicsContext3D::compressedTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dint border, GC3Dsizei imageSize, const void* data)
     200{
     201    // FIXME: Add support for compressedTexImage2D.
     202    // m_internal->compressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
     203}
     204
     205void GraphicsContext3D::compressedTexSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Dsizei imageSize, const void* data)
     206{
     207    // FIXME: Add support for compressedTexSubImage2D.
     208    // m_internal->compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
     209}
     210
    199211void GraphicsContext3D::cullFace(GC3Denum mode)
    200212{
  • trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGL.cpp

    r101295 r101578  
    14351435}
    14361436
     1437void GraphicsContext3D::compressedTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dint border, GC3Dsizei imageSize, const void* data)
     1438{
     1439    makeContextCurrent();
     1440    ::glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
     1441}
     1442
     1443void GraphicsContext3D::compressedTexSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Dsizei imageSize, const void* data)
     1444{
     1445    makeContextCurrent();
     1446    ::glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
     1447}
     1448
    14371449Platform3DObject GraphicsContext3D::createBuffer()
    14381450{
  • trunk/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp

    r100191 r101578  
    654654}
    655655
     656void GraphicsContext3D::compressedTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dint border, GC3Dsizei imageSize, const void* data)
     657{
     658    m_private->m_glWidget->makeCurrent();
     659    glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
     660}
     661
     662void GraphicsContext3D::compressedTexSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Dsizei imageSize, const void* data)
     663{
     664    m_private->m_glWidget->makeCurrent();
     665    glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
     666}
     667
    656668void GraphicsContext3D::copyTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height, GC3Dint border)
    657669{
  • trunk/Source/WebKit/chromium/ChangeLog

    r101576 r101578  
     12011-11-30  Gregg Tavares  <gman@google.com>
     2
     3        Implement draft WEBGL_compressed_textures WebGL extension
     4        https://bugs.webkit.org/show_bug.cgi?id=72086
     5
     6        Reviewed by Kenneth Russell.
     7
     8        * public/WebGraphicsContext3D.h:
     9        * src/GraphicsContext3DChromium.cpp:
     10        * src/GraphicsContext3DPrivate.h:
     11        * tests/MockWebGraphicsContext3D.h:
     12        (WebKit::MockWebGraphicsContext3D::compressedTexImage2D):
     13        (WebKit::MockWebGraphicsContext3D::compressedTexSubImage2D):
     14
    1152011-11-18  Nat Duca  <nduca@chromium.org>
    216
  • trunk/Source/WebKit/chromium/public/platform/WebGraphicsContext3D.h

    r101224 r101578  
    227227    virtual void compileShader(WebGLId shader) = 0;
    228228
     229    virtual void compressedTexImage2D(WGC3Denum target, WGC3Dint level, WGC3Denum internalformat, WGC3Dsizei width, WGC3Dsizei height, WGC3Dint border, WGC3Dsizei imageSize, const void* data) = 0;
     230    virtual void compressedTexSubImage2D(WGC3Denum target, WGC3Dint level, WGC3Dint xoffset, WGC3Dint yoffset, WGC3Dsizei width, WGC3Dsizei height, WGC3Denum format, WGC3Dsizei imageSize, const void* data) = 0;
    229231    virtual void copyTexImage2D(WGC3Denum target, WGC3Dint level, WGC3Denum internalformat, WGC3Dint x, WGC3Dint y, WGC3Dsizei width, WGC3Dsizei height, WGC3Dint border) = 0;
    230232    virtual void copyTexSubImage2D(WGC3Denum target, WGC3Dint level, WGC3Dint xoffset, WGC3Dint yoffset, WGC3Dint x, WGC3Dint y, WGC3Dsizei width, WGC3Dsizei height) = 0;
  • trunk/Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp

    r101035 r101578  
    4646#include "ImageBuffer.h"
    4747#include "ImageData.h"
    48 #include "WebGraphicsContext3D.h"
    4948#include "WebKit.h"
    5049#include "WebKitPlatformSupport.h"
    5150#include "WebViewImpl.h"
     51#include "platform/WebGraphicsContext3D.h"
    5252
    5353#include <stdio.h>
     
    474474}
    475475
     476#define DELEGATE_TO_IMPL_9(name, t1, t2, t3, t4, t5, t6, t7, t8, t9)       \
     477void GraphicsContext3DPrivate::name(t1 a1, t2 a2, t3 a3, t4 a4, t5 a5, t6 a6, t7 a7, t8 a8, t9 a9) \
     478{ \
     479    m_impl->name(a1, a2, a3, a4, a5, a6, a7, a8, a9);      \
     480}
     481
    476482#define DELEGATE_TO_IMPL_9R(name, t1, t2, t3, t4, t5, t6, t7, t8, t9, rt) \
    477483rt GraphicsContext3DPrivate::name(t1 a1, t2 a2, t3 a3, t4 a4, t5 a5, t6 a6, t7 a7, t8 a8, t9 a9) \
     
    534540DELEGATE_TO_IMPL_1(compileShader, Platform3DObject)
    535541
     542DELEGATE_TO_IMPL_8(compressedTexImage2D, GC3Denum, GC3Dint, GC3Denum, GC3Dint, GC3Dint, GC3Dsizei, GC3Dsizei, const void*)
     543DELEGATE_TO_IMPL_9(compressedTexSubImage2D, GC3Denum, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Denum, GC3Dsizei, const void*)
    536544DELEGATE_TO_IMPL_8(copyTexImage2D, GC3Denum, GC3Dint, GC3Denum, GC3Dint, GC3Dint, GC3Dsizei, GC3Dsizei, GC3Dint)
    537545DELEGATE_TO_IMPL_8(copyTexSubImage2D, GC3Denum, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dsizei, GC3Dsizei)
     
    10991107DELEGATE_TO_INTERNAL_1(compileShader, Platform3DObject)
    11001108
     1109DELEGATE_TO_INTERNAL_8(compressedTexImage2D, GC3Denum, GC3Dint, GC3Denum, GC3Dint, GC3Dint, GC3Dsizei, GC3Dsizei, const void*)
     1110DELEGATE_TO_INTERNAL_9(compressedTexSubImage2D, GC3Denum, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Denum, GC3Dsizei, const void*)
    11011111DELEGATE_TO_INTERNAL_8(copyTexImage2D, GC3Denum, GC3Dint, GC3Denum, GC3Dint, GC3Dint, GC3Dsizei, GC3Dsizei, GC3Dint)
    11021112DELEGATE_TO_INTERNAL_8(copyTexSubImage2D, GC3Denum, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dsizei, GC3Dsizei)
  • trunk/Source/WebKit/chromium/src/GraphicsContext3DPrivate.h

    r101035 r101578  
    138138    void compileShader(Platform3DObject);
    139139
     140    void compressedTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dint border, GC3Dsizei imageSize, const void* data);
     141    void compressedTexSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Dsizei imageSize, const void* data);
    140142    void copyTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height, GC3Dint border);
    141143    void copyTexSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height);
  • trunk/Source/WebKit/chromium/tests/MockWebGraphicsContext3D.h

    r100191 r101578  
    100100    virtual void compileShader(WebGLId shader) { }
    101101
     102    virtual void compressedTexImage2D(WGC3Denum target, WGC3Dint level, WGC3Denum internalformat, WGC3Dsizei width, WGC3Dsizei height, WGC3Dint border, WGC3Dsizei imageSize, const void* data) { }
     103    virtual void compressedTexSubImage2D(WGC3Denum target, WGC3Dint level, WGC3Dint xoffset, WGC3Dint yoffset, WGC3Dsizei width, WGC3Dsizei height, WGC3Denum format, WGC3Dsizei imageSize, const void* data) { }
    102104    virtual void copyTexImage2D(WGC3Denum target, WGC3Dint level, WGC3Denum internalformat, WGC3Dint x, WGC3Dint y, WGC3Dsizei width, WGC3Dsizei height, WGC3Dint border) { }
    103105    virtual void copyTexSubImage2D(WGC3Denum target, WGC3Dint level, WGC3Dint xoffset, WGC3Dint yoffset, WGC3Dint x, WGC3Dint y, WGC3Dsizei width, WGC3Dsizei height) { }
Note: See TracChangeset for help on using the changeset viewer.