Changeset 109798 in webkit


Ignore:
Timestamp:
Mar 5, 2012 1:52:07 PM (12 years ago)
Author:
commit-queue@webkit.org
Message:

Implement WebGL extension EXT_texture_filter_anisotropic
https://bugs.webkit.org/show_bug.cgi?id=79541

This exports the EXT_texture_filter_anisotropic extension with the WEBKIT_ prefix as defined at
https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/extensions/proposals/EXT_texture_filter_anisotropic/index.html

Patch by Ben Vanik <benvanik@google.com> on 2012-03-05
Reviewed by Kenneth Russell.

Tested with the Khronos conformance test for the extension, available at https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/conformance/extensions/ext-texture-filter-anisotropic.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • DerivedSources.pri:
  • 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/EXTTextureFilterAnisotropic.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.

(WebCore):
(WebCore::EXTTextureFilterAnisotropic::EXTTextureFilterAnisotropic):
(WebCore::EXTTextureFilterAnisotropic::~EXTTextureFilterAnisotropic):
(WebCore::EXTTextureFilterAnisotropic::getName):
(WebCore::EXTTextureFilterAnisotropic::create):

  • html/canvas/EXTTextureFilterAnisotropic.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.

(WebCore):
(EXTTextureFilterAnisotropic):

  • html/canvas/EXTTextureFilterAnisotropic.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
  • html/canvas/WebGLExtension.h:
  • html/canvas/WebGLObject.cpp:
  • html/canvas/WebGLRenderingContext.cpp:

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

  • html/canvas/WebGLRenderingContext.h:

(WebCore):
(WebGLRenderingContext):

  • platform/graphics/Extensions3D.h:

(Extensions3D):

  • platform/graphics/opengl/Extensions3DOpenGL.cpp:

(WebCore::Extensions3DOpenGL::supports):

Location:
trunk/Source/WebCore
Files:
16 edited
3 copied

Legend:

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

    r109787 r109798  
    22392239        html/canvas/WebGLVertexArrayObjectOES.cpp
    22402240        html/canvas/WebGLExtension.cpp
     2241        html/canvas/EXTTextureFilterAnisotropic.cpp
    22412242        html/canvas/OESStandardDerivatives.cpp
    22422243        html/canvas/OESTextureFloat.cpp
     
    22472248    )
    22482249    LIST(APPEND WebCore_IDL_FILES
     2250        html/canvas/EXTTextureFilterAnisotropic.idl
    22492251        html/canvas/OESStandardDerivatives.idl
    22502252        html/canvas/OESTextureFloat.idl
  • trunk/Source/WebCore/ChangeLog

    r109791 r109798  
     12012-03-05  Ben Vanik  <benvanik@google.com>
     2
     3        Implement WebGL extension EXT_texture_filter_anisotropic
     4        https://bugs.webkit.org/show_bug.cgi?id=79541
     5
     6        This exports the EXT_texture_filter_anisotropic extension with the WEBKIT_ prefix as defined at
     7        https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/extensions/proposals/EXT_texture_filter_anisotropic/index.html
     8
     9        Reviewed by Kenneth Russell.
     10
     11        Tested with the Khronos conformance test for the extension, available at https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/conformance/extensions/ext-texture-filter-anisotropic.html
     12
     13        * CMakeLists.txt:
     14        * DerivedSources.make:
     15        * DerivedSources.pri:
     16        * GNUmakefile.list.am:
     17        * Target.pri:
     18        * WebCore.gypi:
     19        * WebCore.xcodeproj/project.pbxproj:
     20        * bindings/js/JSWebGLRenderingContextCustom.cpp:
     21        (WebCore::toJS):
     22        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
     23        (WebCore::toV8Object):
     24        * html/canvas/EXTTextureFilterAnisotropic.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
     25        (WebCore):
     26        (WebCore::EXTTextureFilterAnisotropic::EXTTextureFilterAnisotropic):
     27        (WebCore::EXTTextureFilterAnisotropic::~EXTTextureFilterAnisotropic):
     28        (WebCore::EXTTextureFilterAnisotropic::getName):
     29        (WebCore::EXTTextureFilterAnisotropic::create):
     30        * html/canvas/EXTTextureFilterAnisotropic.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
     31        (WebCore):
     32        (EXTTextureFilterAnisotropic):
     33        * html/canvas/EXTTextureFilterAnisotropic.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
     34        * html/canvas/WebGLExtension.h:
     35        * html/canvas/WebGLObject.cpp:
     36        * html/canvas/WebGLRenderingContext.cpp:
     37        (WebCore):
     38        (WebCore::WebGLRenderingContext::getExtension):
     39        (WebCore::WebGLRenderingContext::getParameter):
     40        (WebCore::WebGLRenderingContext::getSupportedExtensions):
     41        (WebCore::WebGLRenderingContext::getTexParameter):
     42        (WebCore::WebGLRenderingContext::texParameter):
     43        * html/canvas/WebGLRenderingContext.h:
     44        (WebCore):
     45        (WebGLRenderingContext):
     46        * platform/graphics/Extensions3D.h:
     47        (Extensions3D):
     48        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
     49        (WebCore::Extensions3DOpenGL::supports):
     50
    1512012-03-05  Sheriff Bot  <webkit.review.bot@gmail.com>
    252
  • trunk/Source/WebCore/DerivedSources.make

    r109693 r109798  
    298298    $(WebCore)/html/canvas/CanvasRenderingContext2D.idl \
    299299    $(WebCore)/html/canvas/DataView.idl \
     300    $(WebCore)/html/canvas/EXTTextureFilterAnisotropic.idl \
    300301    $(WebCore)/html/canvas/Float32Array.idl \
    301302    $(WebCore)/html/canvas/Float64Array.idl \
  • trunk/Source/WebCore/DerivedSources.pri

    r109693 r109798  
    243243    $$PWD/html/canvas/CanvasRenderingContext.idl \
    244244    $$PWD/html/canvas/CanvasRenderingContext2D.idl \
     245    $$PWD/html/canvas/EXTTextureFilterAnisotropic.idl \
    245246    $$PWD/html/canvas/OESStandardDerivatives.idl \
    246247    $$PWD/html/canvas/OESTextureFloat.idl \
  • trunk/Source/WebCore/GNUmakefile.list.am

    r109735 r109798  
    162162        DerivedSources/WebCore/JSErrorEvent.cpp \
    163163        DerivedSources/WebCore/JSErrorEvent.h \
     164        DerivedSources/WebCore/JSEXTTextureFilterAnisotropic.cpp \
     165        DerivedSources/WebCore/JSEXTTextureFilterAnisotropic.h \
    164166        DerivedSources/WebCore/JSEvent.cpp \
    165167        DerivedSources/WebCore/JSEventException.cpp \
     
    858860        $(WebCore)/html/canvas/CanvasRenderingContext2D.idl \
    859861        $(WebCore)/html/canvas/DataView.idl \
     862        $(WebCore)/html/canvas/EXTTextureFilterAnisotropic.idl \
    860863        $(WebCore)/html/canvas/Float32Array.idl \
    861864        $(WebCore)/html/canvas/Float64Array.idl \
     
    57355738        Source/WebCore/html/canvas/WebGLExtension.cpp \
    57365739        Source/WebCore/html/canvas/WebGLExtension.h \
     5740        Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.cpp \
     5741        Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.h \
    57375742        Source/WebCore/html/canvas/OESStandardDerivatives.cpp \
    57385743        Source/WebCore/html/canvas/OESStandardDerivatives.h \
  • trunk/Source/WebCore/Target.pri

    r109667 r109798  
    37363736        html/canvas/WebGLShader.h \
    37373737        html/canvas/WebGLSharedObject.h \
     3738        html/canvas/EXTTextureFilterAnisotropic.h \
    37383739        html/canvas/OESStandardDerivatives.h \
    37393740        html/canvas/OESTextureFloat.h \
     
    37763777        html/canvas/WebGLShader.cpp \
    37773778        html/canvas/WebGLSharedObject.cpp \
     3779        html/canvas/EXTTextureFilterAnisotropic.cpp \
    37783780        html/canvas/OESStandardDerivatives.cpp \
    37793781        html/canvas/OESTextureFloat.cpp \
  • trunk/Source/WebCore/WebCore.gypi

    r109693 r109798  
    986986            'html/canvas/CanvasRenderingContext2D.idl',
    987987            'html/canvas/DataView.idl',
     988            'html/canvas/EXTTextureFilterAnisotropic.idl',
    988989            'html/canvas/Float32Array.idl',
    989990            'html/canvas/Float64Array.idl',
     
    54935494            'html/canvas/DataView.cpp',
    54945495            'html/canvas/DataView.h',
     5496            'html/canvas/EXTTextureFilterAnisotropic.cpp',
     5497            'html/canvas/EXTTextureFilterAnisotropic.h',
    54955498            'html/canvas/OESStandardDerivatives.cpp',
    54965499            'html/canvas/OESStandardDerivatives.h',
     
    71777180            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSErrorEvent.cpp',
    71787181            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSErrorEvent.h',
     7182            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSEXTTextureFilterAnisotropic.cpp',
     7183            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSEXTTextureFilterAnisotropic.h',
    71797184            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSEvent.cpp',
    71807185            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSEvent.h',
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r109693 r109798  
    18581858                76FC2B0C12370DA0006A991A /* DOMTokenList.h in Headers */ = {isa = PBXBuildFile; fileRef = 76FC2B0912370DA0006A991A /* DOMTokenList.h */; };
    18591859                76FF17E311235673001D61B5 /* PluginViewNone.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 76FF17E211235673001D61B5 /* PluginViewNone.cpp */; };
     1860                7728694E14F8882500F484DC /* EXTTextureFilterAnisotropic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7728694B14F8882500F484DC /* EXTTextureFilterAnisotropic.cpp */; };
     1861                7728694F14F8882500F484DC /* EXTTextureFilterAnisotropic.h in Headers */ = {isa = PBXBuildFile; fileRef = 7728694C14F8882500F484DC /* EXTTextureFilterAnisotropic.h */; };
     1862                7728698314FD9ADA00F484DC /* JSEXTTextureFilterAnisotropic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7728698114FD9ADA00F484DC /* JSEXTTextureFilterAnisotropic.cpp */; };
     1863                7728698414FD9ADA00F484DC /* JSEXTTextureFilterAnisotropic.h in Headers */ = {isa = PBXBuildFile; fileRef = 7728698214FD9ADA00F484DC /* JSEXTTextureFilterAnisotropic.h */; };
    18601864                77A17A7112F28182004E02F6 /* OESVertexArrayObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 77A17A6E12F28182004E02F6 /* OESVertexArrayObject.cpp */; };
    18611865                77A17A7212F28182004E02F6 /* OESVertexArrayObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 77A17A6F12F28182004E02F6 /* OESVertexArrayObject.h */; };
     
    88028806                76FC2B0A12370DA0006A991A /* DOMTokenList.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DOMTokenList.idl; sourceTree = "<group>"; };
    88038807                76FF17E211235673001D61B5 /* PluginViewNone.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PluginViewNone.cpp; sourceTree = "<group>"; };
     8808                7728694B14F8882500F484DC /* EXTTextureFilterAnisotropic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = EXTTextureFilterAnisotropic.cpp; path = canvas/EXTTextureFilterAnisotropic.cpp; sourceTree = "<group>"; };
     8809                7728694C14F8882500F484DC /* EXTTextureFilterAnisotropic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EXTTextureFilterAnisotropic.h; path = canvas/EXTTextureFilterAnisotropic.h; sourceTree = "<group>"; };
     8810                7728694D14F8882500F484DC /* EXTTextureFilterAnisotropic.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = EXTTextureFilterAnisotropic.idl; path = canvas/EXTTextureFilterAnisotropic.idl; sourceTree = "<group>"; };
     8811                7728698114FD9ADA00F484DC /* JSEXTTextureFilterAnisotropic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSEXTTextureFilterAnisotropic.cpp; sourceTree = "<group>"; };
     8812                7728698214FD9ADA00F484DC /* JSEXTTextureFilterAnisotropic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSEXTTextureFilterAnisotropic.h; sourceTree = "<group>"; };
    88048813                77A17A6E12F28182004E02F6 /* OESVertexArrayObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OESVertexArrayObject.cpp; path = canvas/OESVertexArrayObject.cpp; sourceTree = "<group>"; };
    88058814                77A17A6F12F28182004E02F6 /* OESVertexArrayObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OESVertexArrayObject.h; path = canvas/OESVertexArrayObject.h; sourceTree = "<group>"; };
     
    1459014599                                2E97CCE812939CB800C5C8FF /* DataView.h */,
    1459114600                                2E97CCE912939CB800C5C8FF /* DataView.idl */,
     14601                                7728694B14F8882500F484DC /* EXTTextureFilterAnisotropic.cpp */,
     14602                                7728694C14F8882500F484DC /* EXTTextureFilterAnisotropic.h */,
     14603                                7728694D14F8882500F484DC /* EXTTextureFilterAnisotropic.idl */,
    1459214604                                49EECDCF10503C2300099FAB /* Float32Array.idl */,
    1459314605                                6EBC5D80138B4C4E00A0CF8A /* Float64Array.idl */,
     
    1754317555                                2E37E00312DBC5A400A6B233 /* JSDOMURL.cpp */,
    1754417556                                2E37E00412DBC5A400A6B233 /* JSDOMURL.h */,
     17557                                7728698114FD9ADA00F484DC /* JSEXTTextureFilterAnisotropic.cpp */,
     17558                                7728698214FD9ADA00F484DC /* JSEXTTextureFilterAnisotropic.h */,
    1754517559                                49EECEF4105070C400099FAB /* JSFloat32Array.cpp */,
    1754617560                                49EECEF5105070C400099FAB /* JSFloat32Array.h */,
     
    2450724521                                977E2E0F12F0FC9C00C13379 /* XSSAuditor.h in Headers */,
    2450824522                                FD537353137B651800008DCE /* ZeroPole.h in Headers */,
     24523                                7728694F14F8882500F484DC /* EXTTextureFilterAnisotropic.h in Headers */,
     24524                                7728698414FD9ADA00F484DC /* JSEXTTextureFilterAnisotropic.h in Headers */,
    2450924525                        );
    2451024526                        runOnlyForDeploymentPostprocessing = 0;
     
    2747727493                                977E2E0E12F0FC9C00C13379 /* XSSAuditor.cpp in Sources */,
    2747827494                                FD537352137B651800008DCE /* ZeroPole.cpp in Sources */,
     27495                                7728694E14F8882500F484DC /* EXTTextureFilterAnisotropic.cpp in Sources */,
     27496                                7728698314FD9ADA00F484DC /* JSEXTTextureFilterAnisotropic.cpp in Sources */,
    2747927497                        );
    2748027498                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp

    r107107 r109798  
    3030#include "JSWebGLRenderingContext.h"
    3131
     32#include "EXTTextureFilterAnisotropic.h"
    3233#include "ExceptionCode.h"
    3334#include "HTMLCanvasElement.h"
    3435#include "HTMLImageElement.h"
     36#include "JSEXTTextureFilterAnisotropic.h"
    3537#include "JSFloat32Array.h"
    3638#include "JSHTMLCanvasElement.h"
     
    189191    case WebGLExtension::WebKitWebGLLoseContextName:
    190192        return toJS(exec, globalObject, static_cast<WebGLLoseContext*>(extension));
     193    case WebGLExtension::EXTTextureFilterAnisotropicName:
     194        return toJS(exec, globalObject, static_cast<EXTTextureFilterAnisotropic*>(extension));
    191195    case WebGLExtension::OESStandardDerivativesName:
    192196        return toJS(exec, globalObject, static_cast<OESStandardDerivatives*>(extension));
  • trunk/Source/WebCore/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp

    r107107 r109798  
    4040#include "V8Binding.h"
    4141#include "V8BindingMacros.h"
     42#include "V8EXTTextureFilterAnisotropic.h"
    4243#include "V8Float32Array.h"
    4344#include "V8HTMLCanvasElement.h"
     
    176177        referenceName = "webKitWebGLLoseContextName";
    177178        break;
     179    case WebGLExtension::EXTTextureFilterAnisotropicName:
     180        extensionObject = toV8(static_cast<EXTTextureFilterAnisotropic*>(extension));
     181        referenceName = "extTextureFilterAnisotropicName";
     182        break;
    178183    case WebGLExtension::OESStandardDerivativesName:
    179184        extensionObject = toV8(static_cast<OESStandardDerivatives*>(extension));
  • trunk/Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.cpp

    r109797 r109798  
    11/*
    2  * Copyright (C) 2010 Google Inc. All rights reserved.
     2 * Copyright (C) 2012 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
     26#include "config.h"
    2827
    29 #include "WebGLRenderingContext.h"
     28#if ENABLE(WEBGL)
     29
     30#include "EXTTextureFilterAnisotropic.h"
    3031
    3132namespace WebCore {
    3233
    33 class WebGLExtension {
    34 public:
    35     // Extension names are needed to properly wrap instances in JavaScript objects.
    36     enum ExtensionName {
    37         WebKitWebGLLoseContextName, // WEBKIT_ prefix until extension is official
    38         OESTextureFloatName,
    39         OESStandardDerivativesName,
    40         OESVertexArrayObjectName,
    41         WebGLDebugRendererInfoName,
    42         WebGLDebugShadersName,
    43         WebKitWebGLCompressedTextureS3TCName, // WEBKIT_ prefix until extension is official
    44     };
     34EXTTextureFilterAnisotropic::EXTTextureFilterAnisotropic(WebGLRenderingContext* context)
     35    : WebGLExtension(context)
     36{
     37}
    4538
    46     void ref() { m_context->ref(); }
    47     void deref() { m_context->deref(); }
    48     WebGLRenderingContext* context() { return m_context; }
     39EXTTextureFilterAnisotropic::~EXTTextureFilterAnisotropic()
     40{
     41}
    4942
    50     virtual ~WebGLExtension();
    51     virtual ExtensionName getName() const = 0;
     43WebGLExtension::ExtensionName EXTTextureFilterAnisotropic::getName() const
     44{
     45    return EXTTextureFilterAnisotropicName;
     46}
    5247
    53 protected:
    54     WebGLExtension(WebGLRenderingContext*);
    55     WebGLRenderingContext* m_context;
    56 };
     48PassOwnPtr<EXTTextureFilterAnisotropic> EXTTextureFilterAnisotropic::create(WebGLRenderingContext* context)
     49{
     50    return adoptPtr(new EXTTextureFilterAnisotropic(context));
     51}
    5752
    5853} // namespace WebCore
    5954
    60 #endif // WebGLExtension_h
     55#endif // ENABLE(WEBGL)
  • trunk/Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.h

    r109797 r109798  
    11/*
    2  * Copyright (C) 2010 Google Inc. All rights reserved.
     2 * Copyright (C) 2012 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
     26#ifndef EXTTextureFilterAnisotropic_h
     27#define EXTTextureFilterAnisotropic_h
    2828
    29 #include "WebGLRenderingContext.h"
     29#include "WebGLExtension.h"
     30#include <wtf/PassOwnPtr.h>
    3031
    3132namespace WebCore {
    3233
    33 class WebGLExtension {
     34class EXTTextureFilterAnisotropic : public WebGLExtension {
    3435public:
    35     // Extension names are needed to properly wrap instances in JavaScript objects.
    36     enum ExtensionName {
    37         WebKitWebGLLoseContextName, // WEBKIT_ prefix until extension is official
    38         OESTextureFloatName,
    39         OESStandardDerivativesName,
    40         OESVertexArrayObjectName,
    41         WebGLDebugRendererInfoName,
    42         WebGLDebugShadersName,
    43         WebKitWebGLCompressedTextureS3TCName, // WEBKIT_ prefix until extension is official
    44     };
     36    static PassOwnPtr<EXTTextureFilterAnisotropic> create(WebGLRenderingContext*);
    4537
    46     void ref() { m_context->ref(); }
    47     void deref() { m_context->deref(); }
    48     WebGLRenderingContext* context() { return m_context; }
     38    virtual ~EXTTextureFilterAnisotropic();
     39    virtual ExtensionName getName() const;
    4940
    50     virtual ~WebGLExtension();
    51     virtual ExtensionName getName() const = 0;
    52 
    53 protected:
    54     WebGLExtension(WebGLRenderingContext*);
    55     WebGLRenderingContext* m_context;
     41private:
     42    EXTTextureFilterAnisotropic(WebGLRenderingContext*);
    5643};
    5744
    5845} // namespace WebCore
    5946
    60 #endif // WebGLExtension_h
     47#endif // EXTTextureFilterAnisotropic_h
  • trunk/Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.idl

    r109797 r109798  
    11/*
    2  * Copyright (C) 2010 Google Inc. All rights reserved.
     2 * Copyright (C) 2012 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
    28 
    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         WebKitWebGLLoseContextName, // WEBKIT_ prefix until extension is official
    38         OESTextureFloatName,
    39         OESStandardDerivativesName,
    40         OESVertexArrayObjectName,
    41         WebGLDebugRendererInfoName,
    42         WebGLDebugShadersName,
    43         WebKitWebGLCompressedTextureS3TCName, // WEBKIT_ prefix until extension is official
     26module html {
     27    interface [
     28        Conditional=WEBGL,
     29        JSGenerateIsReachable=ImplContext,
     30        OmitConstructor,
     31        DoNotCheckConstants
     32    ] EXTTextureFilterAnisotropic {
     33        const unsigned int TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE;
     34        const unsigned int MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF;
    4435    };
    45 
    46     void ref() { m_context->ref(); }
    47     void deref() { m_context->deref(); }
    48     WebGLRenderingContext* context() { return m_context; }
    49 
    50     virtual ~WebGLExtension();
    51     virtual ExtensionName getName() const = 0;
    52 
    53 protected:
    54     WebGLExtension(WebGLRenderingContext*);
    55     WebGLRenderingContext* m_context;
    56 };
    57 
    58 } // namespace WebCore
    59 
    60 #endif // WebGLExtension_h
     36}
  • trunk/Source/WebCore/html/canvas/WebGLExtension.h

    r107107 r109798  
    3636    enum ExtensionName {
    3737        WebKitWebGLLoseContextName, // WEBKIT_ prefix until extension is official
     38        EXTTextureFilterAnisotropicName,
    3839        OESTextureFloatName,
    3940        OESStandardDerivativesName,
  • trunk/Source/WebCore/html/canvas/WebGLObject.cpp

    r107107 r109798  
    3030#include "WebGLObject.h"
    3131
     32#include "EXTTextureFilterAnisotropic.h"
    3233#include "OESStandardDerivatives.h"
    3334#include "OESTextureFloat.h"
  • trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp

    r109016 r109798  
    3535#include "Console.h"
    3636#include "DOMWindow.h"
     37#include "EXTTextureFilterAnisotropic.h"
    3738#include "ExceptionCode.h"
    3839#include "Extensions3D.h"
     
    22122213        return 0;
    22132214
     2215    if (equalIgnoringCase(name, "WEBKIT_EXT_texture_filter_anisotropic")
     2216        && m_context->getExtensions()->supports("GL_EXT_texture_filter_anisotropic")) {
     2217        if (!m_extTextureFilterAnisotropic) {
     2218            m_context->getExtensions()->ensureEnabled("GL_EXT_texture_filter_anisotropic");
     2219            m_extTextureFilterAnisotropic = EXTTextureFilterAnisotropic::create(this);
     2220        }
     2221        return m_extTextureFilterAnisotropic.get();
     2222    }
    22142223    if (equalIgnoringCase(name, "OES_standard_derivatives")
    22152224        && m_context->getExtensions()->supports("GL_OES_standard_derivatives")) {
     
    25232532        synthesizeGLError(GraphicsContext3D::INVALID_ENUM, "getParameter", "invalid parameter name, OES_vertex_array_object not enabled");
    25242533        return WebGLGetInfo();
     2534    case Extensions3D::MAX_TEXTURE_MAX_ANISOTROPY_EXT: // EXT_texture_filter_anisotropic
     2535        if (m_extTextureFilterAnisotropic)
     2536            return getUnsignedIntParameter(Extensions3D::MAX_TEXTURE_MAX_ANISOTROPY_EXT);
     2537        synthesizeGLError(GraphicsContext3D::INVALID_ENUM, "getParameter", "invalid parameter name, EXT_texture_filter_anisotropic not enabled");
     2538        return WebGLGetInfo();
    25252539    default:
    25262540        synthesizeGLError(GraphicsContext3D::INVALID_ENUM, "getParameter", "invalid parameter name");
     
    26842698    if (m_context->getExtensions()->supports("GL_OES_standard_derivatives"))
    26852699        result.append("OES_standard_derivatives");
     2700    if (m_context->getExtensions()->supports("GL_EXT_texture_filter_anisotropic"))
     2701        result.append("WEBKIT_EXT_texture_filter_anisotropic");
    26862702    if (m_context->getExtensions()->supports("GL_OES_vertex_array_object"))
    26872703        result.append("OES_vertex_array_object");
     
    27162732        m_context->getTexParameteriv(target, pname, &value);
    27172733        return WebGLGetInfo(static_cast<unsigned int>(value));
     2734    case Extensions3D::TEXTURE_MAX_ANISOTROPY_EXT: // EXT_texture_filter_anisotropic
     2735        if (m_extTextureFilterAnisotropic) {
     2736            m_context->getTexParameteriv(target, pname, &value);
     2737            return WebGLGetInfo(static_cast<unsigned int>(value));
     2738        }
     2739        synthesizeGLError(GraphicsContext3D::INVALID_ENUM, "getTexParameter", "invalid parameter name, EXT_texture_filter_anisotropic not enabled");
     2740        return WebGLGetInfo();
    27182741    default:
    27192742        synthesizeGLError(GraphicsContext3D::INVALID_ENUM, "getTexParameter", "invalid parameter name");
     
    35393562        }
    35403563        break;
     3564    case Extensions3D::TEXTURE_MAX_ANISOTROPY_EXT: // EXT_texture_filter_anisotropic
     3565        if (!m_extTextureFilterAnisotropic) {
     3566            synthesizeGLError(GraphicsContext3D::INVALID_ENUM, "texParameter", "invalid parameter, EXT_texture_filter_anisotropic not enabled");
     3567            return;
     3568        }
     3569        break;
    35413570    default:
    35423571        synthesizeGLError(GraphicsContext3D::INVALID_ENUM, "texParameter", "invalid parameter name");
  • trunk/Source/WebCore/html/canvas/WebGLRenderingContext.h

    r108861 r109798  
    4141namespace WebCore {
    4242
     43class EXTTextureFilterAnisotropic;
    4344class HTMLImageElement;
    4445class HTMLVideoElement;
     
    500501
    501502    // Enabled extension objects.
     503    OwnPtr<EXTTextureFilterAnisotropic> m_extTextureFilterAnisotropic;
    502504    OwnPtr<OESTextureFloat> m_oesTextureFloat;
    503505    OwnPtr<OESStandardDerivatives> m_oesStandardDerivatives;
  • trunk/Source/WebCore/platform/graphics/Extensions3D.h

    r101578 r109798  
    6666    //   GL_OES_compressed_ETC1_RGB8_texture
    6767    //   GL_IMG_texture_compression_pvrtc
     68    //   EXT_texture_filter_anisotropic
    6869
    6970    // Takes full name of extension; for example,
     
    136137        COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02,
    137138        COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03,
     139
     140        // GL_EXT_texture_filter_anisotropic
     141        TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE,
     142        MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF,
    138143    };
    139144
  • trunk/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.cpp

    r107945 r109798  
    9999        return true;
    100100
     101    if (name == "GL_EXT_texture_filter_anisotropic")
     102        return m_availableExtensions.contains("GL_EXT_texture_filter_anisotropic");
     103
    101104    return m_availableExtensions.contains(name);
    102105}
Note: See TracChangeset for help on using the changeset viewer.