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 "SkGLContext.h"
12
13#if SK_MESA
14
15class SkMesaGLContext : public SkGLContext {
16private:
17    typedef intptr_t Context;
18
19public:
20    SkMesaGLContext();
21
22    virtual ~SkMesaGLContext();
23
24    virtual void makeCurrent() const SK_OVERRIDE;
25
26    class AutoContextRestore {
27    public:
28        AutoContextRestore();
29        ~AutoContextRestore();
30
31    private:
32        Context fOldContext;
33        GLint   fOldWidth;
34        GLint   fOldHeight;
35        GLint   fOldFormat;
36        void*   fOldImage;
37    };
38
39protected:
40    virtual const GrGLInterface* createGLContext() SK_OVERRIDE;
41    virtual void destroyGLContext() SK_OVERRIDE;
42
43private:
44    Context fContext;
45    GrGLubyte *fImage;
46};
47
48#endif
49
50#endif
51