diff options
author | bsalomon <bsalomon@google.com> | 2014-10-08 04:45:09 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-10-08 04:45:10 -0700 |
commit | 10805961ce424868e8315e00f6dbeeaa62d466ac (patch) | |
tree | 87fbeec3c52176c1794c25ae639adb38c6bcfa60 /include/gpu/gl/SkGLContext.h | |
parent | a5ee45ce9daba663c28ba5f6634af93702aecd96 (diff) |
Revert of Make the Sk GL context class an abstract base class (patchset #4 id:60001 of https://codereview.chromium.org/630843002/)
Reason for revert:
nanobech failing on Android
Original issue's description:
> Make the Sk GL context class an abstract base class
>
> Make the Sk GL context class, SkGLNativeContext, an abstract base class. Before,
> it depended on ifdefs to implement the platform dependent polymorphism. Move
> the logic to subclasses of the various platform implementations.
>
> This a step to enable Skia embedders to compile dm and bench_pictures. The
> concrete goal is to support running these test apps with Chromium command buffer.
>
> With this change, Chromium can implement its own version of SkGLNativeContext
> that uses command buffer, and host the implementation in its own repository.
>
> Implements the above by renaming the SkGLContextHelper to SkGLContext and
> removing the unneeded SkGLNativeContext. Also removes
> SkGLNativeContext::AutoRestoreContext functionality, it appeared to be unused:
> no use in Skia code, and no tests.
>
> BUG=skia:2992
>
> Committed: https://skia.googlesource.com/skia/+/a90ed4e83897b45d6331ee4c54e1edd4054de9a8
TBR=kkinnunen@nvidia.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2992
Review URL: https://codereview.chromium.org/639793002
Diffstat (limited to 'include/gpu/gl/SkGLContext.h')
-rw-r--r-- | include/gpu/gl/SkGLContext.h | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/include/gpu/gl/SkGLContext.h b/include/gpu/gl/SkGLContext.h deleted file mode 100644 index 83c9146c9b..0000000000 --- a/include/gpu/gl/SkGLContext.h +++ /dev/null @@ -1,103 +0,0 @@ - -/* - * Copyright 2013 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ -#ifndef SkGLContext_DEFINED -#define SkGLContext_DEFINED - -#include "GrGLInterface.h" - -/** - * Create an offscreen opengl context with an RGBA8 / 8bit stencil FBO. - * Provides a GrGLInterface struct of function pointers for the context. - */ - -class SK_API SkGLContext : public SkRefCnt { -public: - SK_DECLARE_INST_COUNT(SkGLContext) - - SkGLContext(); - virtual ~SkGLContext(); - - /** - * Initializes the context and makes it current. - */ - bool init(GrGLStandard forcedGpuAPI, const int width, const int height); - - int getFBOID() const { return fFBO; } - - const GrGLInterface* gl() const { return fGL; } - - virtual void makeCurrent() const = 0; - - /** - * The primary purpose of this function it to provide a means of scheduling - * work on the GPU (since all of the subclasses create primary buffers for - * testing that are small and not meant to be rendered to the screen). - * - * If the drawing surface provided by the platform is double buffered this - * call will cause the platform to swap which buffer is currently being - * targeted. If the current surface does not include a back buffer, this - * call has no effect. - */ - virtual void swapBuffers() const = 0; - - bool hasExtension(const char* extensionName) const { - SkASSERT(fGL); - return fGL->hasExtension(extensionName); - } - - /** - * This notifies the context that we are deliberately testing abandoning - * the context. It is useful for debugging contexts that would otherwise - * test that GPU resources are properly deleted. It also allows a debugging - * context to test that further GL calls are not made by Skia GPU code. - */ - void testAbandon(); - -protected: - /** - * Subclass implements this to make a GL context. The returned GrGLInterface - * should be populated with functions compatible with the context. The - * format and size of backbuffers does not matter since an FBO will be - * created. - */ - virtual const GrGLInterface* createGLContext(GrGLStandard forcedGpuAPI) = 0; - - /** - * Subclass should destroy the underlying GL context. - */ - virtual void destroyGLContext() = 0; - -private: - GrGLuint fFBO; - GrGLuint fColorBufferID; - GrGLuint fDepthStencilBufferID; - const GrGLInterface* fGL; - - typedef SkRefCnt INHERITED; -}; - -/** Creates platform-dependent GL context object - * Note: If Skia embedder needs a custom GL context that sets up the GL - * interface, this function should be implemented by the embedder. - * Otherwise, the default implementation for the platform should be compiled in - * the library. - */ -SK_API SkGLContext* SkCreatePlatformGLContext(); - -/** - * Helper macros for using the GL context through the GrGLInterface. Example: - * SK_GL(glCtx, GenTextures(1, &texID)); - */ -#define SK_GL(ctx, X) (ctx).gl()->fFunctions.f ## X; \ - SkASSERT(0 == (ctx).gl()->fFunctions.fGetError()) -#define SK_GL_RET(ctx, RET, X) (RET) = (ctx).gl()->fFunctions.f ## X; \ - SkASSERT(0 == (ctx).gl()->fFunctions.fGetError()) -#define SK_GL_NOERRCHECK(ctx, X) (ctx).gl()->fFunctions.f ## X -#define SK_GL_RET_NOERRCHECK(ctx, RET, X) (RET) = (ctx).gl()->fFunctions.f ## X - -#endif |