Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(798)

Unified Diff: Source/core/platform/graphics/Extensions3D.h

Issue 99103006: Moving GraphicsContext and dependencies from core to platform. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Final patch - fixes Android Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/platform/graphics/Extensions3D.h
diff --git a/Source/core/platform/graphics/Extensions3D.h b/Source/core/platform/graphics/Extensions3D.h
deleted file mode 100644
index f321258fcfb4d5b3e3a068e6f17ac3979f05d18f..0000000000000000000000000000000000000000
--- a/Source/core/platform/graphics/Extensions3D.h
+++ /dev/null
@@ -1,333 +0,0 @@
-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef Extensions3D_h
-#define Extensions3D_h
-
-#include "platform/graphics/GraphicsTypes3D.h"
-
-#include "wtf/text/WTFString.h"
-
-namespace WebCore {
-
-class GraphicsContext3D;
-class ImageBuffer;
-
-// The supported extensions are defined below.
-//
-// Calling any extension function not supported by the current context
-// must be a no-op; in particular, it may not have side effects. In
-// this situation, if the function has a return value, 0 is returned.
-class Extensions3D {
-public:
- ~Extensions3D();
-
- // Supported extensions:
- // GL_EXT_texture_format_BGRA8888
- // GL_EXT_read_format_bgra
- // GL_ARB_robustness
- // GL_ARB_texture_non_power_of_two / GL_OES_texture_npot
- // GL_EXT_packed_depth_stencil / GL_OES_packed_depth_stencil
- // GL_ANGLE_framebuffer_blit / GL_ANGLE_framebuffer_multisample
- // GL_OES_texture_float
- // GL_OES_texture_float_linear
- // GL_OES_texture_half_float
- // GL_OES_texture_half_float_linear
- // GL_OES_standard_derivatives
- // GL_OES_rgb8_rgba8
- // GL_OES_vertex_array_object
- // GL_OES_element_index_uint
- // GL_ANGLE_translated_shader_source
- // GL_ARB_texture_rectangle (only the subset required to
- // implement IOSurface binding; it's recommended to support
- // this only on Mac OS X to limit the amount of code dependent
- // on this extension)
- // GL_EXT_texture_compression_dxt1
- // GL_EXT_texture_compression_s3tc
- // GL_OES_compressed_ETC1_RGB8_texture
- // GL_IMG_texture_compression_pvrtc
- // EXT_texture_filter_anisotropic
- // GL_EXT_debug_marker
- // GL_CHROMIUM_copy_texture
- // GL_CHROMIUM_flipy
- // GL_ARB_draw_buffers / GL_EXT_draw_buffers
- // GL_ANGLE_instanced_arrays
-
- // GL_CHROMIUM_shallow_flush : only supported if an ipc command buffer is used.
- // GL_CHROMIUM_resource_safe : indicating that textures/renderbuffers are always initialized before read/write.
- // GL_CHROMIUM_strict_attribs : indicating a GL error is generated for out-of-bounds buffer accesses.
- // GL_CHROMIUM_post_sub_buffer
- // GL_CHROMIUM_map_sub
- // GL_CHROMIUM_swapbuffers_complete_callback
- // GL_CHROMIUM_rate_limit_offscreen_context
- // GL_CHROMIUM_paint_framebuffer_canvas
- // GL_CHROMIUM_iosurface (Mac OS X specific)
- // GL_CHROMIUM_command_buffer_query
- // GL_ANGLE_texture_usage
- // GL_EXT_debug_marker
- // GL_EXT_texture_storage
- // GL_EXT_occlusion_query_boolean
-
- // Takes full name of extension; for example,
- // "GL_EXT_texture_format_BGRA8888".
- bool supports(const String&);
-
- // Certain OpenGL and WebGL implementations may support enabling
- // extensions lazily. This method may only be called with
- // extension names for which supports returns true.
- void ensureEnabled(const String&);
-
- // Takes full name of extension: for example, "GL_EXT_texture_format_BGRA8888".
- // Checks to see whether the given extension is actually enabled (see ensureEnabled).
- // Has no other side-effects.
- bool isEnabled(const String&);
-
- enum ExtensionsEnumType {
- // GL_EXT_texture_format_BGRA8888 enums
- BGRA_EXT = 0x80E1,
-
- // GL_ARB_robustness/GL_CHROMIUM_lose_context enums
- GUILTY_CONTEXT_RESET_ARB = 0x8253,
- INNOCENT_CONTEXT_RESET_ARB = 0x8254,
- UNKNOWN_CONTEXT_RESET_ARB = 0x8255,
-
- // GL_EXT/OES_packed_depth_stencil enums
- DEPTH24_STENCIL8 = 0x88F0,
-
- // GL_ANGLE_framebuffer_blit names
- READ_FRAMEBUFFER = 0x8CA8,
- DRAW_FRAMEBUFFER = 0x8CA9,
- DRAW_FRAMEBUFFER_BINDING = 0x8CA6,
- READ_FRAMEBUFFER_BINDING = 0x8CAA,
-
- // GL_ANGLE_framebuffer_multisample names
- RENDERBUFFER_SAMPLES = 0x8CAB,
- FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56,
- MAX_SAMPLES = 0x8D57,
-
- // GL_OES_standard_derivatives names
- FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B,
-
- // GL_OES_rgb8_rgba8 names
- RGB8_OES = 0x8051,
- RGBA8_OES = 0x8058,
-
- // GL_OES_vertex_array_object names
- VERTEX_ARRAY_BINDING_OES = 0x85B5,
-
- // GL_ANGLE_translated_shader_source
- TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE = 0x93A0,
-
- // GL_ARB_texture_rectangle
- TEXTURE_RECTANGLE_ARB = 0x84F5,
- TEXTURE_BINDING_RECTANGLE_ARB = 0x84F6,
-
- // GL_EXT_texture_compression_dxt1
- // GL_EXT_texture_compression_s3tc
- COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0,
- COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1,
- COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2,
- COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3,
-
- // GL_OES_compressed_ETC1_RGB8_texture
- ETC1_RGB8_OES = 0x8D64,
-
- // GL_IMG_texture_compression_pvrtc
- COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00,
- COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01,
- COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02,
- COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03,
-
- // GL_AMD_compressed_ATC_texture
- COMPRESSED_ATC_RGB_AMD = 0x8C92,
- COMPRESSED_ATC_RGBA_EXPLICIT_ALPHA_AMD = 0x8C93,
- COMPRESSED_ATC_RGBA_INTERPOLATED_ALPHA_AMD = 0x87EE,
-
- // GL_EXT_texture_filter_anisotropic
- TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE,
- MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF,
-
- // GL_CHROMIUM_flipy
- UNPACK_FLIP_Y_CHROMIUM = 0x9240,
-
- // GL_CHROMIUM_copy_texture
- UNPACK_PREMULTIPLY_ALPHA_CHROMIUM = 0x9241,
- UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM = 0x9242,
-
- // GL_ARB_draw_buffers / GL_EXT_draw_buffers
- MAX_DRAW_BUFFERS_EXT = 0x8824,
- DRAW_BUFFER0_EXT = 0x8825,
- DRAW_BUFFER1_EXT = 0x8826,
- DRAW_BUFFER2_EXT = 0x8827,
- DRAW_BUFFER3_EXT = 0x8828,
- DRAW_BUFFER4_EXT = 0x8829,
- DRAW_BUFFER5_EXT = 0x882A,
- DRAW_BUFFER6_EXT = 0x882B,
- DRAW_BUFFER7_EXT = 0x882C,
- DRAW_BUFFER8_EXT = 0x882D,
- DRAW_BUFFER9_EXT = 0x882E,
- DRAW_BUFFER10_EXT = 0x882F,
- DRAW_BUFFER11_EXT = 0x8830,
- DRAW_BUFFER12_EXT = 0x8831,
- DRAW_BUFFER13_EXT = 0x8832,
- DRAW_BUFFER14_EXT = 0x8833,
- DRAW_BUFFER15_EXT = 0x8834,
- MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF,
- COLOR_ATTACHMENT0_EXT = 0x8CE0,
- COLOR_ATTACHMENT1_EXT = 0x8CE1,
- COLOR_ATTACHMENT2_EXT = 0x8CE2,
- COLOR_ATTACHMENT3_EXT = 0x8CE3,
- COLOR_ATTACHMENT4_EXT = 0x8CE4,
- COLOR_ATTACHMENT5_EXT = 0x8CE5,
- COLOR_ATTACHMENT6_EXT = 0x8CE6,
- COLOR_ATTACHMENT7_EXT = 0x8CE7,
- COLOR_ATTACHMENT8_EXT = 0x8CE8,
- COLOR_ATTACHMENT9_EXT = 0x8CE9,
- COLOR_ATTACHMENT10_EXT = 0x8CEA,
- COLOR_ATTACHMENT11_EXT = 0x8CEB,
- COLOR_ATTACHMENT12_EXT = 0x8CEC,
- COLOR_ATTACHMENT13_EXT = 0x8CED,
- COLOR_ATTACHMENT14_EXT = 0x8CEE,
- COLOR_ATTACHMENT15_EXT = 0x8CEF,
-
- // GL_OES_EGL_image_external
- GL_TEXTURE_EXTERNAL_OES = 0x8D65,
-
- // GL_CHROMIUM_map_sub (enums inherited from GL_ARB_vertex_buffer_object)
- READ_ONLY = 0x88B8,
- WRITE_ONLY = 0x88B9,
-
- // GL_ANGLE_texture_usage
- GL_TEXTURE_USAGE_ANGLE = 0x93A2,
- GL_FRAMEBUFFER_ATTACHMENT_ANGLE = 0x93A3,
-
- // GL_EXT_texture_storage
- BGRA8_EXT = 0x93A1,
-
- // GL_EXT_occlusion_query_boolean
- ANY_SAMPLES_PASSED_EXT = 0x8C2F,
- ANY_SAMPLES_PASSED_CONSERVATIVE_EXT = 0x8D6A,
- CURRENT_QUERY_EXT = 0x8865,
- QUERY_RESULT_EXT = 0x8866,
- QUERY_RESULT_AVAILABLE_EXT = 0x8867,
-
- // GL_CHROMIUM_command_buffer_query
- COMMANDS_ISSUED_CHROMIUM = 0x84F2,
-
- // GL_ANGLE_instanced_arrays
- VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE
- };
-
- // GL_ARB_robustness
- // Note: This method's behavior differs from the GL_ARB_robustness
- // specification in the following way:
- // The implementation must not reset the error state during this call.
- // If getGraphicsResetStatusARB returns an error, it should continue
- // returning the same error. Restoring the GraphicsContext3D is handled
- // externally.
- int getGraphicsResetStatusARB();
-
- // GL_ANGLE_framebuffer_blit
- void blitFramebuffer(long srcX0, long srcY0, long srcX1, long srcY1, long dstX0, long dstY0, long dstX1, long dstY1, unsigned long mask, unsigned long filter);
-
- // GL_ANGLE_framebuffer_multisample
- void renderbufferStorageMultisample(unsigned long target, unsigned long samples, unsigned long internalformat, unsigned long width, unsigned long height);
-
- // GL_OES_vertex_array_object
- Platform3DObject createVertexArrayOES();
- void deleteVertexArrayOES(Platform3DObject);
- GC3Dboolean isVertexArrayOES(Platform3DObject);
- void bindVertexArrayOES(Platform3DObject);
-
- // GL_ANGLE_translated_shader_source
- String getTranslatedShaderSourceANGLE(Platform3DObject);
-
- // GL_CHROMIUM_copy_texture
- // canUseCopyTextureCHROMIUM(...) is used to check if copyTextureCHROMIUM(...) can work for the specified
- // format, type and level for the destination texture.
- bool canUseCopyTextureCHROMIUM(GC3Denum destFormat, GC3Denum destType, GC3Dint level);
- void copyTextureCHROMIUM(GC3Denum, Platform3DObject, Platform3DObject, GC3Dint, GC3Denum, GC3Denum);
-
- // GL_EXT_debug_marker
- void insertEventMarkerEXT(const String&);
- void pushGroupMarkerEXT(const String&);
- void popGroupMarkerEXT(void);
-
- // GL_ARB_draw_buffers / GL_EXT_draw_buffers
- void drawBuffersEXT(GC3Dsizei n, const GC3Denum* bufs);
-
- // GL_CHROMIUM_map_sub
- void* mapBufferSubDataCHROMIUM(unsigned target, int offset, int size, unsigned access);
- void unmapBufferSubDataCHROMIUM(const void*);
- void* mapTexSubImage2DCHROMIUM(unsigned target, int level, int xoffset, int yoffset, int width, int height, unsigned format, unsigned type, unsigned access);
- void unmapTexSubImage2DCHROMIUM(const void*);
-
- // GL_CHROMIUM_rate_limit_offscreen_context
- void rateLimitOffscreenContextCHROMIUM();
-
- // GL_CHROMIUM_paint_framebuffer_canvas
- void paintFramebufferToCanvas(int framebuffer, int width, int height, bool premultiplyAlpha, ImageBuffer*);
-
- // GL_CHROMIUM_iosurface
- // To avoid needing to expose extraneous enums, assumes internal format
- // RGBA, format BGRA, and type UNSIGNED_INT_8_8_8_8_REV.
- void texImageIOSurface2DCHROMIUM(unsigned target, int width, int height, uint32_t ioSurfaceId, unsigned plane);
-
- // GL_EXT_texture_storage
- void texStorage2DEXT(unsigned target, int levels, unsigned internalformat, int width, int height);
-
- // GL_EXT_occlusion_query
- Platform3DObject createQueryEXT();
- void deleteQueryEXT(Platform3DObject);
- GC3Dboolean isQueryEXT(Platform3DObject);
- void beginQueryEXT(GC3Denum, Platform3DObject);
- void endQueryEXT(GC3Denum);
- void getQueryivEXT(GC3Denum, GC3Denum, GC3Dint*);
- void getQueryObjectuivEXT(Platform3DObject, GC3Denum, GC3Duint*);
-
- // GL_CHROMIUM_shallow_flush
- void shallowFlushCHROMIUM();
-
- // GL_ANGLE_instanced_arrays
- void drawArraysInstancedANGLE(GC3Denum mode, GC3Dint first, GC3Dsizei count, GC3Dsizei primcount);
- void drawElementsInstancedANGLE(GC3Denum mode, GC3Dsizei count, GC3Denum type, GC3Dintptr offset, GC3Dsizei primcount);
- void vertexAttribDivisorANGLE(GC3Duint index, GC3Duint divisor);
-
- // GL_CHROMIUM_lose_context
- void loseContextCHROMIUM(GC3Denum, GC3Denum);
-
-private:
- // Instances of this class are strictly owned by the GraphicsContext3D implementation and do not
- // need to be instantiated by any other code.
- friend class GraphicsContext3D;
- explicit Extensions3D(GraphicsContext3D*);
-
- // Weak pointer back to GraphicsContext3D.
- GraphicsContext3D* m_context;
-};
-
-} // namespace WebCore
-
-#endif // Extensions3D_h
« no previous file with comments | « Source/core/platform/graphics/DiscardablePixelRef.cpp ('k') | Source/core/platform/graphics/Extensions3D.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698