Changeset 100176 in webkit


Ignore:
Timestamp:
Nov 14, 2011 12:24:13 PM (12 years ago)
Author:
commit-queue@webkit.org
Message:

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

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

Source/WebCore:

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

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • WebCore.gypi:
  • WebCore.pro:
  • bindings/js/JSWebGLRenderingContextCustom.cpp:

(WebCore::toJS):

  • bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:

(WebCore::toV8Object):

  • html/canvas/WebGLExperimentalCompressedTextures.cpp: Added.

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

  • html/canvas/WebGLExperimentalCompressedTextures.h: Added.
  • html/canvas/WebGLExperimentalCompressedTextures.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
  • 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:
2 added
20 edited
1 copied

Legend:

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

    r100159 r100176  
    21412141        html/canvas/WebGLDebugRendererInfo.cpp
    21422142        html/canvas/WebGLDebugShaders.cpp
     2143        html/canvas/WebGLExperimentalCompressedTextures.cpp
    21432144        html/canvas/WebGLFramebuffer.cpp
    21442145        html/canvas/WebGLGetInfo.cpp
     
    21722173        html/canvas/WebGLDebugRendererInfo.idl
    21732174        html/canvas/WebGLDebugShaders.idl
     2175        html/canvas/WebGLExperimentalCompressedTextures.idl
    21742176        html/canvas/WebGLFramebuffer.idl
    21752177        html/canvas/WebGLProgram.idl
  • trunk/Source/WebCore/ChangeLog

    r100172 r100176  
     12011-11-14  Gregg Tavares  <gman@google.com>
     2
     3        Implement WEBGL_EXPERIMENTAL_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        * GNUmakefile.list.am:
     12        * WebCore.gypi:
     13        * WebCore.pro:
     14        * bindings/js/JSWebGLRenderingContextCustom.cpp:
     15        (WebCore::toJS):
     16        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
     17        (WebCore::toV8Object):
     18        * html/canvas/WebGLExperimentalCompressedTextures.cpp: Added.
     19        (WebCore::WebGLExperimentalCompressedTextures::WebGLExperimentalCompressedTextures):
     20        (WebCore::WebGLExperimentalCompressedTextures::~WebGLExperimentalCompressedTextures):
     21        (WebCore::WebGLExperimentalCompressedTextures::getName):
     22        (WebCore::WebGLExperimentalCompressedTextures::create):
     23        (WebCore::WebGLExperimentalCompressedTextures::supported):
     24        (WebCore::WebGLExperimentalCompressedTextures::validateCompressedTexFormat):
     25        (WebCore::WebGLExperimentalCompressedTextures::validateCompressedTexFuncData):
     26        (WebCore::WebGLExperimentalCompressedTextures::validateCompressedTexSubDimensions):
     27        (WebCore::WebGLExperimentalCompressedTextures::compressedTexImage2D):
     28        (WebCore::WebGLExperimentalCompressedTextures::compressedTexSubImage2D):
     29        (WebCore::WebGLExperimentalCompressedTextures::getCompressedTextureFormats):
     30        * html/canvas/WebGLExperimentalCompressedTextures.h: Added.
     31        * html/canvas/WebGLExperimentalCompressedTextures.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
     32        * html/canvas/WebGLExtension.h:
     33        * html/canvas/WebGLRenderingContext.cpp:
     34        (WebCore::WebGLRenderingContext::getExtension):
     35        (WebCore::WebGLRenderingContext::getParameter):
     36        (WebCore::WebGLRenderingContext::getSupportedExtensions):
     37        * html/canvas/WebGLRenderingContext.h:
     38        * platform/graphics/Extensions3D.h:
     39        * platform/graphics/GraphicsContext3D.h:
     40        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
     41        (WebCore::GraphicsContext3D::compressedTexImage2D):
     42        (WebCore::GraphicsContext3D::compressedTexSubImage2D):
     43        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
     44        (WebCore::GraphicsContext3D::compressedTexImage2D):
     45        (WebCore::GraphicsContext3D::compressedTexSubImage2D):
     46        * platform/graphics/qt/GraphicsContext3DQt.cpp:
     47        (WebCore::GraphicsContext3D::compressedTexImage2D):
     48        (WebCore::GraphicsContext3D::compressedTexSubImage2D):
     49
    1502011-11-14  Michael Nordman  <michaeln@google.com>
    251
  • trunk/Source/WebCore/GNUmakefile.list.am

    r100159 r100176  
    49814981        Source/WebCore/html/canvas/WebGLDebugShaders.cpp \
    49824982        Source/WebCore/html/canvas/WebGLDebugShaders.h \
     4983        Source/WebCore/html/canvas/WebGLExperimentalCompressedTextures.cpp \
     4984        Source/WebCore/html/canvas/WebGLExperimentalCompressedTextures.h \
    49834985        Source/WebCore/html/canvas/WebGLFramebuffer.cpp \
    49844986        Source/WebCore/html/canvas/WebGLFramebuffer.h \
  • trunk/Source/WebCore/Target.pri

    r100159 r100176  
    36283628        html/canvas/WebGLDebugRendererInfo.h \
    36293629        html/canvas/WebGLDebugShaders.h \
     3630        html/canvas/WebGLExperimentalCompressedTextures.h \
    36303631        html/canvas/WebGLExtension.h \
    36313632        html/canvas/WebGLFramebuffer.h \
     
    36613662        html/canvas/WebGLDebugRendererInfo.cpp \
    36623663        html/canvas/WebGLDebugShaders.cpp \
     3664        html/canvas/WebGLExperimentalCompressedTextures.cpp \
    36633665        html/canvas/WebGLExtension.cpp \
    36643666        html/canvas/WebGLFramebuffer.cpp \
  • trunk/Source/WebCore/WebCore.gypi

    r100159 r100176  
    13671367            'html/canvas/WebGLDebugShaders.idl',
    13681368            'html/canvas/WebGLFramebuffer.idl',
     1369            'html/canvas/WebGLExperimentalCompressedTextures.idl',
    13691370            'html/canvas/WebGLProgram.idl',
    13701371            'html/canvas/WebGLRenderbuffer.idl',
     
    57225723            'html/canvas/WebGLDebugShaders.cpp',
    57235724            'html/canvas/WebGLDebugShaders.h',
     5725            'html/canvas/WebGLExperimentalCompressedTextures.cpp',
     5726            'html/canvas/WebGLExperimentalCompressedTextures.h',
    57245727            'html/canvas/WebGLExtension.cpp',
    57255728            'html/canvas/WebGLExtension.h',
  • trunk/Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp

    r100006 r100176  
    6161#include "WebGLDebugRendererInfo.h"
    6262#include "WebGLDebugShaders.h"
     63#include "WebGLExperimentalCompressedTextures.h"
    6364#include "WebGLExtension.h"
    6465#include "WebGLFramebuffer.h"
     
    194195    case WebGLExtension::WebGLDebugShadersName:
    195196        return toJS(exec, globalObject, static_cast<WebGLDebugShaders*>(extension));
     197    case WebGLExtension::WebGLExperimentalCompressedTexturesName:
     198        return toJS(exec, globalObject, static_cast<WebGLExperimentalCompressedTextures*>(extension));
    196199    }
    197200    ASSERT_NOT_REACHED();
  • trunk/Source/WebCore/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp

    r97896 r100176  
    5959#include "V8WebGLDebugRendererInfo.h"
    6060#include "V8WebGLDebugShaders.h"
     61#include "V8WebGLExperimentalCompressedTextures.h"
    6162#include "V8WebGLFramebuffer.h"
    6263#include "V8WebGLProgram.h"
     
    193194        referenceName = "webGLDebugShadersName";
    194195        break;
     196    case WebGLExtension::WebGLExperimentalCompressedTexturesName:
     197        extensionObject = toV8(static_cast<WebGLExperimentalCompressedTextures*>(extension));
     198        referenceName = "webGLExperimentalCompressedTexturesName";
     199        break;
    195200    }
    196201    ASSERT(!extensionObject.IsEmpty());
  • trunk/Source/WebCore/html/canvas/WebGLExperimentalCompressedTextures.idl

    r100174 r100176  
    11/*
    2  * Copyright (C) 2010 Google Inc. All rights reserved.
     2 * Copyright (C) 2011 Google Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2424 */
    2525
    26 #ifndef WebGLExtension_h
    27 #define WebGLExtension_h
     26module html {
     27    interface [
     28        Conditional=WEBGL,
     29        GenerateIsReachable=ImplContext,
     30        OmitConstructor,
     31        DontCheckEnums
     32    ] WebGLExperimentalCompressedTextures {
     33        /* Compressed Texture Formats */
     34        const unsigned int COMPRESSED_RGB_S3TC_DXT1_EXT        = 0x83F0;
     35        const unsigned int COMPRESSED_RGBA_S3TC_DXT1_EXT       = 0x83F1;
     36        const unsigned int COMPRESSED_RGBA_S3TC_DXT5_EXT       = 0x83F3;
     37        const unsigned int ETC1_RGB8_OES                       = 0x8D64;
     38        const unsigned int COMPRESSED_RGB_PVRTC_4BPPV1_IMG     = 0x8C00;
     39        const unsigned int COMPRESSED_RGBA_PVRTC_4BPPV1_IMG    = 0x8C02;
    2840
    29 #include "WebGLRenderingContext.h"
    30 
    31 namespace WebCore {
    32 
    33 class WebGLExtension {
    34 public:
    35     // Extension names are needed to properly wrap instances in JavaScript objects.
    36     enum ExtensionName {
    37         WebKitLoseContextName,
    38         OESTextureFloatName,
    39         OESStandardDerivativesName,
    40         OESVertexArrayObjectName,
    41         WebGLDebugRendererInfoName,
    42         WebGLDebugShadersName,
     41        [StrictTypeChecking] void compressedTexImage2D(in unsigned long target, in long level, in unsigned long internalformat,
     42                                                       in long width, in long height, in long border, in ArrayBufferView data);
     43        [StrictTypeChecking] void compressedTexSubImage2D(in unsigned long target, in long level, in long xoffset, in long yoffset,
     44                                                          in long width, in long height, in unsigned long format, in ArrayBufferView data);
    4345    };
    44 
    45     void ref() { m_context->ref(); }
    46     void deref() { m_context->deref(); }
    47     WebGLRenderingContext* context() { return m_context; }
    48 
    49     virtual ~WebGLExtension();
    50     virtual ExtensionName getName() const = 0;
    51 
    52 protected:
    53     WebGLExtension(WebGLRenderingContext*);
    54     WebGLRenderingContext* m_context;
    55 };
    56 
    57 } // namespace WebCore
    58 
    59 #endif // WebGLExtension_h
     46}
  • trunk/Source/WebCore/html/canvas/WebGLExtension.h

    r97896 r100176  
    4141        WebGLDebugRendererInfoName,
    4242        WebGLDebugShadersName,
     43        WebGLExperimentalCompressedTexturesName,
    4344    };
    4445
  • trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp

    r100032 r100176  
    6060#include "WebGLDebugRendererInfo.h"
    6161#include "WebGLDebugShaders.h"
     62#include "WebGLExperimentalCompressedTextures.h"
    6263#include "WebGLFramebuffer.h"
    6364#include "WebGLProgram.h"
     
    21252126        }
    21262127        return m_oesVertexArrayObject.get();
     2128    }
     2129    if (equalIgnoringCase(name, "WEBGL_EXPERIMENTAL_compressed_textures")) {
     2130        if (!m_webglExperimentalCompressedTextures)
     2131            m_webglExperimentalCompressedTextures = WebGLExperimentalCompressedTextures::create(this);
     2132        return m_webglExperimentalCompressedTextures.get();
    21272133    }
    21282134    if (equalIgnoringCase(name, "WEBKIT_lose_context")) {
     
    22422248        return getBooleanArrayParameter(pname);
    22432249    case GraphicsContext3D::COMPRESSED_TEXTURE_FORMATS:
     2250        if (m_webglExperimentalCompressedTextures)
     2251            return m_webglExperimentalCompressedTextures->getCompressedTextureFormats();
    22442252        // Defined as null in the spec
    22452253        return WebGLGetInfo();
     
    25722580    if (m_context->getExtensions()->supports("GL_OES_vertex_array_object"))
    25732581        result.append("OES_vertex_array_object");
     2582    if (WebGLExperimentalCompressedTextures::supported(this))
     2583        result.append("WEBGL_EXPERIMENTAL_compressed_textures");
    25742584    result.append("WEBKIT_lose_context");
    25752585
  • trunk/Source/WebCore/html/canvas/WebGLRenderingContext.h

    r100032 r100176  
    6363class WebGLUniformLocation;
    6464class WebGLVertexArrayObjectOES;
     65class WebGLExperimentalCompressedTextures;
    6566class WebKitLoseContext;
    6667
     
    312313    friend class OESVertexArrayObject;
    313314    friend class WebGLDebugShaders;
     315    friend class WebGLExperimentalCompressedTextures;
    314316
    315317    WebGLRenderingContext(HTMLCanvasElement*, PassRefPtr<GraphicsContext3D>, GraphicsContext3D::Attributes);
     
    486488    OwnPtr<WebGLDebugRendererInfo> m_webglDebugRendererInfo;
    487489    OwnPtr<WebGLDebugShaders> m_webglDebugShaders;
     490    OwnPtr<WebGLExperimentalCompressedTextures> m_webglExperimentalCompressedTextures;
    488491
    489492    // Helpers for getParameter and others
  • trunk/Source/WebCore/platform/graphics/Extensions3D.h

    r97896 r100176  
    5858    //   GL_OES_vertex_array_object
    5959    //   GL_ANGLE_translated_shader_source
     60    //   GL_EXT_texture_compression_dxt1
     61    //   GL_EXT_texture_compression_s3tc
     62    //   GL_OES_compressed_ETC1_RGB8_texture
     63    //   GL_IMG_texture_compression_pvrtc
    6064
    6165    // Takes full name of extension; for example,
     
    108112        // GL_ANGLE_translated_shader_source
    109113        TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE = 0x93A0,
     114
     115        // GL_EXT_texture_compression_dxt1
     116        // GL_EXT_texture_compression_s3tc
     117        COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0,
     118        COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1,
     119        COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2,
     120        COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3,
     121
     122        // GL_OES_compressed_ETC1_RGB8_texture
     123        ETC1_RGB8_OES = 0x8D64,
     124
     125        // GL_IMG_texture_compression_pvrtc
     126        COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00,
     127        COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01,
     128        COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02,
     129        COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03,
    110130    };
    111131
  • trunk/Source/WebCore/platform/graphics/GraphicsContext3D.h

    r100068 r100176  
    651651    void compileShader(Platform3DObject);
    652652
    653     // void compressedTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dint border, GC3Dsizei imageSize, const void* data);
    654     // void compressedTexSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Dsizei imageSize, const void* data);
    655 
     653    void compressedTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dint border, GC3Dsizei imageSize, const void* data);
     654    void compressedTexSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Dsizei imageSize, const void* data);
    656655    void copyTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height, GC3Dint border);
    657656    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

    r100068 r100176  
    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

    r100032 r100176  
    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

    r100068 r100176  
    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

    r100173 r100176  
     12011-11-14  Gregg Tavares  <gman@google.com>
     2
     3        Implement WEBGL_EXPERIMENTAL_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-14  Tommy Widenflycht  <tommyw@google.com>
    216
  • trunk/Source/WebKit/chromium/public/WebGraphicsContext3D.h

    r100146 r100176  
    226226    virtual void compileShader(WebGLId shader) = 0;
    227227
     228    virtual void compressedTexImage2D(WGC3Denum target, WGC3Dint level, WGC3Denum internalformat, WGC3Dsizei width, WGC3Dsizei height, WGC3Dint border, WGC3Dsizei imageSize, const void* data) = 0;
     229    virtual void compressedTexSubImage2D(WGC3Denum target, WGC3Dint level, WGC3Dint xoffset, WGC3Dint yoffset, WGC3Dsizei width, WGC3Dsizei height, WGC3Denum format, WGC3Dsizei imageSize, const void* data) = 0;
    228230    virtual void copyTexImage2D(WGC3Denum target, WGC3Dint level, WGC3Denum internalformat, WGC3Dint x, WGC3Dint y, WGC3Dsizei width, WGC3Dsizei height, WGC3Dint border) = 0;
    229231    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

    r100146 r100176  
    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)
     
    10981106DELEGATE_TO_INTERNAL_1(compileShader, Platform3DObject)
    10991107
     1108DELEGATE_TO_INTERNAL_8(compressedTexImage2D, GC3Denum, GC3Dint, GC3Denum, GC3Dint, GC3Dint, GC3Dsizei, GC3Dsizei, const void*)
     1109DELEGATE_TO_INTERNAL_9(compressedTexSubImage2D, GC3Denum, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Denum, GC3Dsizei, const void*)
    11001110DELEGATE_TO_INTERNAL_8(copyTexImage2D, GC3Denum, GC3Dint, GC3Denum, GC3Dint, GC3Dint, GC3Dsizei, GC3Dsizei, GC3Dint)
    11011111DELEGATE_TO_INTERNAL_8(copyTexSubImage2D, GC3Denum, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dsizei, GC3Dsizei)
  • trunk/Source/WebKit/chromium/src/GraphicsContext3DPrivate.h

    r100146 r100176  
    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

    r100146 r100176  
    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.