00001 #ifndef MYTHRENDEROPENGL1_H
00002 #define MYTHRENDEROPENGL1_H
00003
00004 #include "mythrender_opengl.h"
00005 #include "mythrender_opengl_defs1.h"
00006
00007 class MUI_PUBLIC MythRenderOpenGL1 : public MythRenderOpenGL
00008 {
00009 public:
00010 MythRenderOpenGL1(const QGLFormat& format, QPaintDevice* device);
00011 MythRenderOpenGL1(const QGLFormat& format);
00012
00013 virtual void SetColor(int r, int g, int b, int a);
00014
00015 virtual uint CreateShaderObject(const QString &vert, const QString &frag);
00016 virtual void DeleteShaderObject(uint obj);
00017 virtual void EnableShaderObject(uint obj);
00018 virtual void SetShaderParams(uint obj, void* vals, const char* uniform);
00019
00020 virtual uint CreateHelperTexture(void);
00021
00022 virtual void PushTransformation(const UIEffects &fx, QPointF ¢er);
00023 virtual void PopTransformation(void);
00024
00025
00026 protected:
00027 virtual ~MythRenderOpenGL1();
00028 virtual void DrawBitmapPriv(uint tex, const QRect *src, const QRect *dst,
00029 uint prog, int alpha,
00030 int red, int green, int blue);
00031 virtual void DrawBitmapPriv(uint *textures, uint texture_count,
00032 const QRectF *src, const QRectF *dst,
00033 uint prog);
00034 virtual void DrawRectPriv(const QRect &area, const QBrush &fillBrush,
00035 const QPen &linePen, int alpha);
00036 virtual void DrawRoundRectPriv(const QRect &area, int cornerRadius,
00037 const QBrush &fillBrush, const QPen &linePen,
00038 int alpha) { }
00039
00040 virtual void Init2DState(void);
00041 virtual void InitProcs(void);
00042 virtual bool InitFeatures(void);
00043 virtual void DeleteShaders(void);
00044 virtual void ResetVars(void);
00045 virtual void ResetProcs(void);
00046 virtual void DeleteOpenGLResources(void);
00047 virtual void SetMatrixView(void);
00048
00049 QVector<GLuint> m_programs;
00050
00051
00052 uint m_active_prog;
00053 uint32_t m_color;
00054
00055
00056 MYTH_GLGENPROGRAMSARBPROC m_glGenProgramsARB;
00057 MYTH_GLBINDPROGRAMARBPROC m_glBindProgramARB;
00058 MYTH_GLPROGRAMSTRINGARBPROC m_glProgramStringARB;
00059 MYTH_GLPROGRAMLOCALPARAMETER4FARBPROC m_glProgramLocalParameter4fARB;
00060 MYTH_GLDELETEPROGRAMSARBPROC m_glDeleteProgramsARB;
00061 MYTH_GLGETPROGRAMIVARBPROC m_glGetProgramivARB;
00062 };
00063
00064 #endif // MYTHRENDEROPENGL1_H