diff options
author | 2011-02-22 20:50:57 +0000 | |
---|---|---|
committer | 2011-02-22 20:50:57 +0000 | |
commit | 5d32fc4c1cb2a5ee68cd5e195a5959f800cc3bc7 (patch) | |
tree | b57f70a53cf4f87f68bd833ebd8fae3e17f7f833 /obsolete/SkGLState.h | |
parent | ffca400ef6f96a280c3e2c09210f950af64a1f24 (diff) |
move old (unmaintained) gl backend out of src. src/gpu superceeds this now.
Will delete the files in obsolete/ at some point...
git-svn-id: http://skia.googlecode.com/svn/trunk@830 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'obsolete/SkGLState.h')
-rw-r--r-- | obsolete/SkGLState.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/obsolete/SkGLState.h b/obsolete/SkGLState.h new file mode 100644 index 0000000000..565498ed96 --- /dev/null +++ b/obsolete/SkGLState.h @@ -0,0 +1,74 @@ + +#ifndef SkGLState_DEFINED +#define SkGLState_DEFINED + +#include "SkGL.h" +#include "SkSize.h" + +class SkGLState { +public: + static SkGLState& GlobalState() { return gState; } + + SkGLState(); + + void reset(); + + // internally, these are bit_shifts, so they must be 0, 1, ... + enum Caps { + kDITHER, + kTEXTURE_2D, + }; + void enable(Caps); + void disable(Caps); + + // internally, these are bit_shifts, so they must be 0, 1, ... + enum ClientState { + kTEXTURE_COORD_ARRAY, + kCOLOR_ARRAY, + }; + void enableClientState(ClientState); + void disableClientState(ClientState); + + // we use -1 for unknown, so the enum must be >= 0 + enum ShadeModel { + kFLAT, + kSMOOTH, + }; + void shadeModel(ShadeModel); + + void scissor(int x, int y, int w, int h); + + void color(SkColor c) { + this->pmColor(SkPreMultiplyColor(c)); + } + void alpha(U8CPU a) { + this->pmColor((a << 24) | (a << 16) | (a << 8) | a); + } + void pmColor(SkPMColor); + + void blendFunc(GLenum src, GLenum dst); + + void pointSize(float); + void lineWidth(float); + +private: + void init(); + + unsigned fCapBits; + unsigned fClientStateBits; + int fShadeModel; + SkIPoint fScissorLoc; + SkISize fScissorSize; + SkPMColor fPMColor; + GLenum fSrcBlend, fDstBlend; + float fPointSize; + float fLineWidth; + + const GLenum* fCapsPtr; + const GLenum* fClientPtr; + const GLenum* fShadePtr; + + static SkGLState gState; +}; + +#endif |