1
2/*
3 * Copyright 2011 Google Inc.
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8#ifndef SkMesaGLContext_DEFINED
9#define SkMesaGLContext_DEFINED
10
11#include "SkGLContextHelper.h"
12
13#if SK_MESA
14
15class SkMesaGLContext : public SkGLContextHelper {
16private:
17    typedef intptr_t Context;
18
19public:
20    SkMesaGLContext();
21
22    virtual ~SkMesaGLContext();
23
24    virtual void makeCurrent() const SK_OVERRIDE;
25    virtual void swapBuffers() const SK_OVERRIDE;
26
27    class AutoContextRestore {
28    public:
29        AutoContextRestore();
30        ~AutoContextRestore();
31
32    private:
33        Context fOldContext;
34        GrGLint fOldWidth;
35        GrGLint fOldHeight;
36        GrGLint fOldFormat;
37        void*   fOldImage;
38    };
39
40protected:
41    virtual const GrGLInterface* createGLContext() SK_OVERRIDE;
42    virtual void destroyGLContext() SK_OVERRIDE;
43
44private:
45    Context fContext;
46    GrGLubyte *fImage;
47};
48
49#endif
50
51#endif
52