From 16e3ddea6a80972aced04b21b1d66377fa95e7c7 Mon Sep 17 00:00:00 2001 From: "bsalomon@google.com" Date: Thu, 25 Oct 2012 18:43:28 +0000 Subject: Platform/Engine -> Backend createPlatform -> wrapBackend R=robertphillips@google.com Review URL: https://codereview.appspot.com/6785044 git-svn-id: http://skia.googlecode.com/svn/trunk@6123 2bbb7eff-a529-9590-31e7-b0007b416f81 --- include/gpu/GrContext.h | 26 +++++++++++++-------- include/gpu/GrContextFactory.h | 5 ++-- include/gpu/GrRenderTarget.h | 10 ++++---- include/gpu/GrTypes.h | 52 +++++++++++++++++++++++++++--------------- 4 files changed, 58 insertions(+), 35 deletions(-) (limited to 'include') diff --git a/include/gpu/GrContext.h b/include/gpu/GrContext.h index dcb5d8bf89..195f7316d1 100644 --- a/include/gpu/GrContext.h +++ b/include/gpu/GrContext.h @@ -46,10 +46,9 @@ public: SK_DECLARE_INST_COUNT(GrContext) /** - * Creates a GrContext from within a 3D context. + * Creates a GrContext for a backend context. */ - static GrContext* Create(GrEngine engine, - GrPlatform3DContext context3D); + static GrContext* Create(GrBackend, GrBackendContext); /** * Returns the number of GrContext instances for the current thread. @@ -290,7 +289,7 @@ public: bool isConfigRenderable(GrPixelConfig config) const; /////////////////////////////////////////////////////////////////////////// - // Platform Surfaces + // Backend Surfaces /** * Wraps an existing texture with a GrTexture object. @@ -302,11 +301,11 @@ public: * * @return GrTexture object or NULL on failure. */ - GrTexture* createPlatformTexture(const GrPlatformTextureDesc& desc); + GrTexture* wrapBackendTexture(const GrBackendTextureDesc& desc); /** * Wraps an existing render target with a GrRenderTarget object. It is - * similar to createPlatformTexture but can be used to draw into surfaces + * similar to wrapBackendTexture but can be used to draw into surfaces * that are not also textures (e.g. FBO 0 in OpenGL, or an MSAA buffer that * the client will resolve to a texture). * @@ -314,8 +313,7 @@ public: * * @return GrTexture object or NULL on failure. */ - GrRenderTarget* createPlatformRenderTarget( - const GrPlatformRenderTargetDesc& desc); + GrRenderTarget* wrapBackendRenderTarget(const GrBackendRenderTargetDesc& desc); /////////////////////////////////////////////////////////////////////////// // Matrix state @@ -607,7 +605,7 @@ public: * be executed before the resolve. * * This is only necessary when a client wants to access the object directly - * using the underlying graphics API. GrContext will detect when it must + * using the backend API directly. GrContext will detect when it must * perform a resolve to a GrTexture used as the source of a draw or before * reading pixels back from a GrTexture or GrRenderTarget. */ @@ -860,6 +858,16 @@ public: void printCacheStats() const; #endif + /////////////////////////////////////////////////////////////////////////// + // Legacy names that will be kept until WebKit can be updated. + GrTexture* createPlatformTexture(const GrPlatformTextureDesc& desc) { + return this->wrapBackendTexture(desc); + } + + GrRenderTarget* createPlatformRenderTarget(const GrPlatformRenderTargetDesc& desc) { + return wrapBackendRenderTarget(desc); + } + private: // Used to indicate whether a draw should be performed immediately or queued in fDrawBuffer. enum BufferedDraw { diff --git a/include/gpu/GrContextFactory.h b/include/gpu/GrContextFactory.h index 600bedae66..95d02a2f11 100644 --- a/include/gpu/GrContextFactory.h +++ b/include/gpu/GrContextFactory.h @@ -95,9 +95,8 @@ public: if (!glCtx.get()->init(kBogusSize, kBogusSize)) { return NULL; } - GrPlatform3DContext p3dctx = - reinterpret_cast(glCtx.get()->gl()); - grCtx.reset(GrContext::Create(kOpenGL_Shaders_GrEngine, p3dctx)); + GrBackendContext p3dctx = reinterpret_cast(glCtx.get()->gl()); + grCtx.reset(GrContext::Create(kOpenGL_GrBackend, p3dctx)); if (!grCtx.get()) { return NULL; } diff --git a/include/gpu/GrRenderTarget.h b/include/gpu/GrRenderTarget.h index f3add50ee3..58a3aa5220 100644 --- a/include/gpu/GrRenderTarget.h +++ b/include/gpu/GrRenderTarget.h @@ -70,7 +70,7 @@ public: * If this RT is multisampled, this is the multisample buffer * @return the 3D API's handle to this object (e.g. FBO ID in OpenGL) */ - virtual intptr_t getRenderTargetHandle() const = 0; + virtual GrBackendObject getRenderTargetHandle() const = 0; /** * If this RT is multisampled, this is the buffer it is resolved to. @@ -78,7 +78,7 @@ public: * (In GL a separate FBO ID is used for the msaa and resolved buffers) * @return the 3D API's handle to this object (e.g. FBO ID in OpenGL) */ - virtual intptr_t getRenderTargetResolvedHandle() const = 0; + virtual GrBackendObject getRenderTargetResolvedHandle() const = 0; /** * @return true if the surface is multisampled, false otherwise @@ -94,9 +94,9 @@ public: * Call to indicate the multisample contents were modified such that the * render target needs to be resolved before it can be used as texture. Gr * tracks this for its own drawing and thus this only needs to be called - * when the render target has been modified outside of Gr. Only meaningful - * for Gr-created RT/Textures and Platform RT/Textures created with the - * kGrCanResolve flag. + * when the render target has been modified outside of Gr. This has no + * effect on wrapped backend render targets. + * * @param rect a rect bounding the area needing resolve. NULL indicates * the whole RT needs resolving. */ diff --git a/include/gpu/GrTypes.h b/include/gpu/GrTypes.h index f084427e6f..8bd1f2f8a8 100644 --- a/include/gpu/GrTypes.h +++ b/include/gpu/GrTypes.h @@ -186,16 +186,15 @@ static inline int16_t GrToS16(intptr_t x) { /** * Possible 3D APIs that may be used by Ganesh. */ -enum GrEngine { - kOpenGL_Shaders_GrEngine, - kOpenGL_Fixed_GrEngine, +enum GrBackend { + kOpenGL_GrBackend, }; /** - * Engine-specific 3D context handle + * Backend-specific 3D context handle * GrGLInterface* for OpenGL. If NULL will use the default GL interface. */ -typedef intptr_t GrPlatform3DContext; +typedef intptr_t GrBackendContext; /////////////////////////////////////////////////////////////////////////////// @@ -595,7 +594,7 @@ static inline bool GrIsFillInverted(GrPathFill fill) { /////////////////////////////////////////////////////////////////////////////// // opaque type for 3D API object handles -typedef intptr_t GrPlatform3DObject; +typedef intptr_t GrBackendObject; /** * Gr can wrap an existing texture created by the client with a GrTexture @@ -618,11 +617,11 @@ typedef intptr_t GrPlatform3DObject; * Note: These flags currently form a subset of GrTexture's flags. */ -enum GrPlatformTextureFlags { +enum GrBackendTextureFlags { /** * No flags enabled */ - kNone_GrPlatformTextureFlag = kNone_GrTextureFlags, + kNone_GrBackendTextureFlag = kNone_GrTextureFlags, /** * Indicates that the texture is also a render target, and thus should have * a GrRenderTarget object. @@ -630,13 +629,13 @@ enum GrPlatformTextureFlags { * D3D (future): client must have created the texture with flags that allow * it to be used as a render target. */ - kRenderTarget_GrPlatformTextureFlag = kRenderTarget_GrTextureFlagBit, + kRenderTarget_GrBackendTextureFlag = kRenderTarget_GrTextureFlagBit, }; -GR_MAKE_BITFIELD_OPS(GrPlatformTextureFlags) +GR_MAKE_BITFIELD_OPS(GrBackendTextureFlags) -struct GrPlatformTextureDesc { - GrPlatformTextureDesc() { memset(this, 0, sizeof(*this)); } - GrPlatformTextureFlags fFlags; +struct GrBackendTextureDesc { + GrBackendTextureDesc() { memset(this, 0, sizeof(*this)); } + GrBackendTextureFlags fFlags; int fWidth; //