Guiliani  Version 2.5 revision 7293 (documentation build 13)
GfxWrapGL.h
1/*
2* Copyright (C) TES Electronic Solutions GmbH,
3* All Rights Reserved.
4* Contact: info@guiliani.de
5*
6* This file is part of the Guiliani HMI framework
7* for the development of graphical user interfaces on embedded systems.
8*/
9
10#ifndef GFXWRAPGL__H_
11#define GFXWRAPGL__H_
12
13#include "GfxWrap.h"
14
15#include "GL_API_Mappings.h"
16
17#include "GUIImageDataGL.h"
18#include "GUIConfigDebug.h"
19
20#ifdef GUILIANI_GFXOGLDEBUG
22#define CHECK_GL_ERROR(a) CGfxWrapGL::CheckGLError(__FUNCTION__, a);
23#else
24#define CHECK_GL_ERROR(a)
25#endif
26
29{
30public:
33
36
42 eC_Bool Load(const char* cVertexShader, const char* cFragmentShader);
43
47 eC_UInt GetShaderID() const { return m_uiShaderProgramID; }
48
50 void Activate() const;
51
52private:
53 eC_UInt m_uiVertexShaderHandle;
54 eC_UInt m_uiFragmentShaderHandle;
55 eC_UInt m_uiShaderProgramID;
56};
57
59
60class CGfxWrapGL : public CGfxWrap
61{
62 friend class CGUIBitmapPlane_GL;
63
64public:
70 static const eC_Value cvPixelCenterOffset;
71
76 void CreateScreen(const eC_UInt &uiWidth, const eC_UInt &uiHeight);
77
78 virtual eC_UInt GetVirtualScreenWidth();
79 virtual eC_UInt GetPhysicalScreenWidth();
80 virtual eC_UInt GetVirtualScreenHeight();
81 virtual eC_UInt GetPhysicalScreenHeight();
82 virtual void SetScreenSize(const eC_UInt &uiWidth, const eC_UInt &uiHeight);
83
84 virtual void StoreWrapperState();
85 virtual void RestoreWrapperState();
86
94 const eC_UByte &ubRed,
95 const eC_UByte &ubGreen,
96 const eC_UByte &ubBlue,
97 const eC_UByte& ubAlpha = 255);
98
99 virtual eC_Value SetLineWidth(const eC_Value& vWidth);
100
107 virtual void Line(
108 const eC_Value& vX1,
109 const eC_Value& vY1,
110 const eC_Value& vX2,
111 const eC_Value& vY2);
112
119 virtual void Rect(
120 const eC_Value& vX1,
121 const eC_Value& vY1,
122 const eC_Value& vX2,
123 const eC_Value& vY2);
124
131 virtual void FilledRect(
132 const eC_Value& vX1,
133 const eC_Value& vY1,
134 const eC_Value& vX2,
135 const eC_Value& vY2);
136
146 virtual void Ellipse(
147 const eC_Value& vX1,
148 const eC_Value& vY1,
149 const eC_Value& vX2,
150 const eC_Value& vY2,
151 const eC_Bool &bFilled);
152
166 virtual void Arc(
167 const eC_Value& vX1,
168 const eC_Value& vY1,
169 const eC_Value& vX2,
170 const eC_Value& vY2,
171 const eC_Value& vStartAngle,
172 const eC_Value& vEndAngle,
173 const eC_Value& vRotationAngle,
174 const eC_Bool &bFilled);
175
176 virtual void Ring(
177 const eC_Value& vX1,
178 const eC_Value& vY1,
179 const eC_Value& vX2,
180 const eC_Value& vY2,
181 const eC_Value& vRingWidth,
182 const eC_Value& vStartAngle,
183 const eC_Value& vEndAngle,
184 const eC_Value& vRotationAngle,
185 const eC_Bool & bFilled);
186
187 // ---------------------------------------------------------------
188 // Clipping and invalidated rectangles
189 // ---------------------------------------------------------------
190
199 virtual void SetCliprect(const CGUIRect &rkNewClipRect);
200
201 virtual eC_Bool ImageExists(const ImageResource_t eID) const;
202
208
212 void Set2DView();
213
218 void Set2DView(const eC_UInt uiWidth, const eC_UInt uiHeight);
219
226 static eC_Bool CheckGLError(const eC_String& kCallingMethod, const eC_String& kFunction = "");
227
228 virtual eC_Bool DrawToBitmap(GUIBitmapPlaneID_t uiBitmapID);
229
230 virtual eC_Bool DrawToScreen();
231
236 const eC_UInt GetTextureID(const ImageResource_t &eImageID);
237
268 const eC_Value& vFovy,
269 const eC_Value& vAspect,
270 const eC_Value& vNear,
271 const eC_Value& vFar);
272
276 virtual eC_Bool InitView();
277
281 inline eC_UInt GetVBO() const
282 {
283 return m_uiVertexVBO;
284 }
285
286#if defined (GUILIANI_USE_OGL) && !defined (SYSTEM_NAME_DARWIN)
288 static PFNGLBINDBUFFERPROC glBindBuffer_Guiliani;
289 static PFNGLBUFFERDATAPROC glBufferData_Guiliani;
290 static PFNGLGENBUFFERSPROC glGenBuffers_Guiliani;
291 static PFNGLDELETEBUFFERSPROC glDeleteBuffers_Guiliani;
292
294 static PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers_Guiliani;
295 static PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer_Guiliani;
296 static PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D_Guiliani;
297 static PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus_Guiliani;
298 static PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers_Guiliani;
299
300#if GUILIANI_USE_GL_SHADERS == 1
302 static PFNGLBLENDEQUATIONSEPARATEPROC glBlendEquationSeparate_Guiliani;
303 static PFNGLDRAWBUFFERSPROC glDrawBuffers_Guiliani;
304 static PFNGLSTENCILOPSEPARATEPROC glStencilOpSeparate_Guiliani;
305 static PFNGLSTENCILFUNCSEPARATEPROC glStencilFuncSeparate_Guiliani;
306 static PFNGLSTENCILMASKSEPARATEPROC glStencilMaskSeparate_Guiliani;
307 static PFNGLATTACHSHADERPROC glAttachShader_Guiliani;
308 static PFNGLBINDATTRIBLOCATIONPROC glBindAttribLocation_Guiliani;
309 static PFNGLCOMPILESHADERPROC glCompileShader_Guiliani;
310 static PFNGLCREATEPROGRAMPROC glCreateProgram_Guiliani;
311 static PFNGLCREATESHADERPROC glCreateShader_Guiliani;
312 static PFNGLDELETEPROGRAMPROC glDeleteProgram_Guiliani;
313 static PFNGLDELETESHADERPROC glDeleteShader_Guiliani;
314 static PFNGLDETACHSHADERPROC glDetachShader_Guiliani;
315 static PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray_Guiliani;
316 static PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray_Guiliani;
317 static PFNGLGETACTIVEATTRIBPROC glGetActiveAttrib_Guiliani;
318 static PFNGLGETACTIVEUNIFORMPROC glGetActiveUniform_Guiliani;
319 static PFNGLGETATTACHEDSHADERSPROC glGetAttachedShaders_Guiliani;
320 static PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation_Guiliani;
321 static PFNGLGETPROGRAMIVPROC glGetProgramiv_Guiliani;
322 static PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog_Guiliani;
323 static PFNGLGETSHADERIVPROC glGetShaderiv_Guiliani;
324 static PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog_Guiliani;
325 static PFNGLGETSHADERSOURCEPROC glGetShaderSource_Guiliani;
326 static PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation_Guiliani;
327 static PFNGLGETUNIFORMFVPROC glGetUniformfv_Guiliani;
328 static PFNGLGETUNIFORMIVPROC glGetUniformiv_Guiliani;
329 static PFNGLGETVERTEXATTRIBDVPROC glGetVertexAttribdv_Guiliani;
330 static PFNGLGETVERTEXATTRIBFVPROC glGetVertexAttribfv_Guiliani;
331 static PFNGLGETVERTEXATTRIBIVPROC glGetVertexAttribiv_Guiliani;
332 static PFNGLGETVERTEXATTRIBPOINTERVPROC glGetVertexAttribPointerv_Guiliani;
333 static PFNGLISPROGRAMPROC glIsProgram_Guiliani;
334 static PFNGLISSHADERPROC glIsShader_Guiliani;
335 static PFNGLLINKPROGRAMPROC glLinkProgram_Guiliani;
336 static PFNGLSHADERSOURCEPROC glShaderSource_Guiliani;
337 static PFNGLUSEPROGRAMPROC glUseProgram_Guiliani;
338 static PFNGLUNIFORM1FPROC glUniform1f_Guiliani;
339 static PFNGLUNIFORM2FPROC glUniform2f_Guiliani;
340 static PFNGLUNIFORM3FPROC glUniform3f_Guiliani;
341 static PFNGLUNIFORM4FPROC glUniform4f_Guiliani;
342 static PFNGLUNIFORM1IPROC glUniform1i_Guiliani;
343 static PFNGLUNIFORM2IPROC glUniform2i_Guiliani;
344 static PFNGLUNIFORM3IPROC glUniform3i_Guiliani;
345 static PFNGLUNIFORM4IPROC glUniform4i_Guiliani;
346 static PFNGLUNIFORM1FVPROC glUniform1fv_Guiliani;
347 static PFNGLUNIFORM2FVPROC glUniform2fv_Guiliani;
348 static PFNGLUNIFORM3FVPROC glUniform3fv_Guiliani;
349 static PFNGLUNIFORM4FVPROC glUniform4fv_Guiliani;
350 static PFNGLUNIFORM1IVPROC glUniform1iv_Guiliani;
351 static PFNGLUNIFORM2IVPROC glUniform2iv_Guiliani;
352 static PFNGLUNIFORM3IVPROC glUniform3iv_Guiliani;
353 static PFNGLUNIFORM4IVPROC glUniform4iv_Guiliani;
354 static PFNGLUNIFORMMATRIX2FVPROC glUniformMatrix2fv_Guiliani;
355 static PFNGLUNIFORMMATRIX3FVPROC glUniformMatrix3fv_Guiliani;
356 static PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv_Guiliani;
357 static PFNGLVALIDATEPROGRAMPROC glValidateProgram_Guiliani;
358 static PFNGLVERTEXATTRIB1DPROC glVertexAttrib1d_Guiliani;
359 static PFNGLVERTEXATTRIB1DVPROC glVertexAttrib1dv_Guiliani;
360 static PFNGLVERTEXATTRIB1FPROC glVertexAttrib1f_Guiliani;
361 static PFNGLVERTEXATTRIB1FVPROC glVertexAttrib1fv_Guiliani;
362 static PFNGLVERTEXATTRIB1SPROC glVertexAttrib1s_Guiliani;
363 static PFNGLVERTEXATTRIB1SVPROC glVertexAttrib1sv_Guiliani;
364 static PFNGLVERTEXATTRIB2DPROC glVertexAttrib2d_Guiliani;
365 static PFNGLVERTEXATTRIB2DVPROC glVertexAttrib2dv_Guiliani;
366 static PFNGLVERTEXATTRIB2FPROC glVertexAttrib2f_Guiliani;
367 static PFNGLVERTEXATTRIB2FVPROC glVertexAttrib2fv_Guiliani;
368 static PFNGLVERTEXATTRIB2SPROC glVertexAttrib2s_Guiliani;
369 static PFNGLVERTEXATTRIB2SVPROC glVertexAttrib2sv_Guiliani;
370 static PFNGLVERTEXATTRIB3DPROC glVertexAttrib3d_Guiliani;
371 static PFNGLVERTEXATTRIB3DVPROC glVertexAttrib3dv_Guiliani;
372 static PFNGLVERTEXATTRIB3FPROC glVertexAttrib3f_Guiliani;
373 static PFNGLVERTEXATTRIB3FVPROC glVertexAttrib3fv_Guiliani;
374 static PFNGLVERTEXATTRIB3SPROC glVertexAttrib3s_Guiliani;
375 static PFNGLVERTEXATTRIB3SVPROC glVertexAttrib3sv_Guiliani;
376 static PFNGLVERTEXATTRIB4NBVPROC glVertexAttrib4Nbv_Guiliani;
377 static PFNGLVERTEXATTRIB4NIVPROC glVertexAttrib4Niv_Guiliani;
378 static PFNGLVERTEXATTRIB4NSVPROC glVertexAttrib4Nsv_Guiliani;
379 static PFNGLVERTEXATTRIB4NUBPROC glVertexAttrib4Nub_Guiliani;
380 static PFNGLVERTEXATTRIB4NUBVPROC glVertexAttrib4Nubv_Guiliani;
381 static PFNGLVERTEXATTRIB4NUIVPROC glVertexAttrib4Nuiv_Guiliani;
382 static PFNGLVERTEXATTRIB4NUSVPROC glVertexAttrib4Nusv_Guiliani;
383 static PFNGLVERTEXATTRIB4BVPROC glVertexAttrib4bv_Guiliani;
384 static PFNGLVERTEXATTRIB4DPROC glVertexAttrib4d_Guiliani;
385 static PFNGLVERTEXATTRIB4DVPROC glVertexAttrib4dv_Guiliani;
386 static PFNGLVERTEXATTRIB4FPROC glVertexAttrib4f_Guiliani;
387 static PFNGLVERTEXATTRIB4FVPROC glVertexAttrib4fv_Guiliani;
388 static PFNGLVERTEXATTRIB4IVPROC glVertexAttrib4iv_Guiliani;
389 static PFNGLVERTEXATTRIB4SPROC glVertexAttrib4s_Guiliani;
390 static PFNGLVERTEXATTRIB4SVPROC glVertexAttrib4sv_Guiliani;
391 static PFNGLVERTEXATTRIB4UBVPROC glVertexAttrib4ubv_Guiliani;
392 static PFNGLVERTEXATTRIB4UIVPROC glVertexAttrib4uiv_Guiliani;
393 static PFNGLVERTEXATTRIB4USVPROC glVertexAttrib4usv_Guiliani;
394 static PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer_Guiliani;
395#endif
396
397#endif
398
403
404#if GUILIANI_USE_GL_SHADERS == 1
408 eC_Bool InitShaders();
409
415 void MultMatrix(const Matrix3D_t& avMatrix);
416
418 void SetOrthoProjection(const eC_Value& vLeft, const eC_Value& vRight,
419 const eC_Value& vBottom, const eC_Value& vTop,
420 const eC_Value& vNear, const eC_Value& vFar);
421
423 void SetFrustumProjection(const eC_Value& vLeft, const eC_Value& vRight,
424 const eC_Value& vBottom, const eC_Value& vTop,
425 const eC_Value& vNear, const eC_Value& vFar);
426
428 void SetRotation(const eC_Value& vDegrees, eC_Value vX, eC_Value vY, eC_Value vZ);
429
431 void SetTranslation(const eC_Value& vXTranslate, const eC_Value& vYTranslate, const eC_Value& vZTranslate);
432
434 void SetScaling(const eC_Value& vXScale, const eC_Value vYScale, const eC_Value vZScale);
435
437 void SetUniformScaling(const eC_Value& vScale);
438
442 eC_UInt GetShaderID() const;
443
447 void SetMatrix(const Matrix3D_t& avNewMatrix);
448
452 const Matrix3D_t& GetMatrix() const;
453
455 void PushMatrix();
456
458 void PopMatrix();
459
461 enum MatrixType_t
462 {
463 MT_PROJECTION,
464 MT_MODELVIEW
465 };
466
470 inline void SetMatrixMode(const MatrixType_t& eNewActiveMatrix)
471 {
472 m_eActiveMatrix = eNewActiveMatrix;
473 }
474
476 void LoadIdentity();
477
478#endif //#if GUILIANI_USE_GL_SHADERS == 1
479
483 eC_Bool IsFBOSupported() const { return m_bFBOSupported; }
484
490 const eC_Bool& bVertexEnabled,
491 const eC_Bool& bTextureCoordsEnabled);
492
497 void BindBuffer(const eC_UInt& eType, const eC_UInt& uiBuffer);
498
503 void BindTexture(const eC_UInt& eType, const eC_UInt& uiTextureID);
504
508 void SetTexturingActive(const eC_Bool& bTexturingActive);
509
513 void SetMixTextureWithColor(const eC_Bool& bMixWithColor);
514
518 eC_UInt CreateTexture();
519
523 void DeleteTexture(const eC_UInt& uiTextureID);
524
533 virtual void ReadTextureData(
534 const eC_UInt& uiTexID,
535 const eC_UInt& uiXPos, const eC_UInt& uiYPos,
536 const eC_UInt& uiWidth, const eC_UInt& uiHeight, void* pkData) = 0;
537
540
543
544protected:
545 // ---------------------------------------------------------------
546 // Construction / destruction
547 // ---------------------------------------------------------------
548
550 virtual ~CGfxWrapGL(void);
551
554
556 GUIBitmapPlaneID_t uiNewBitmapID,
557 const CGUIObject& rkParentObject,
558 const eC_Value& vWidth, const eC_Value& vHeight);
559
565 virtual void RestoreBackBuffer(const eC_Value vWidth, const eC_Value vHeight);
566
572 virtual void LoadImgImpl(const eC_String& psPath, const ImageResource_t &eID);
573
581 virtual void LoadImgImpl(
582 void* pkMemory,
583 const eC_UInt& uiWidth,
584 const eC_UInt& uiHeight,
585 const eC_UInt& eImageType,
586 const ImageResource_t &eID);
587
593 virtual void UnloadImg(const ImageResource_t &eID);
594
595 eC_Bool SetNOFImagesImpl(const eC_UInt uiNOFImages);
596
597 virtual void BlitImgExtImpl(
598 const ImageResource_t &eID,
599 const eC_UInt &uiSrcX, const eC_UInt &uiSrcY,
600 const eC_UInt &uiSrcWidth, const eC_UInt &uiSrcHeight,
601 const eC_Value& vDestX, const eC_Value& vDestY,
602 const eC_Value& vDestWidth, const eC_Value& vDestHeight,
603 const eC_UByte &ubAlpha = 255,
604 const eC_Value& vAngle = eC_FromFloat(0),
605 const eC_Value& vRotCenterX = eC_FromFloat(0.5), const eC_Value& vRotCenterY = eC_FromFloat(0.5));
606
607 virtual void BlitImgExtImpl(const CGUIImageData& kImageData, const eC_Value& vAbsDestX, const eC_Value& vAbsDestY) {}
608
609 virtual void BlitImgNinePatch(
610 const ImageResource_t &eID,
611 const CGUIRect& kAbsRect,
612 const eC_UInt uiTopBorder,
613 const eC_UInt uiBottomBorder,
614 const eC_UInt uiLeftBorder,
615 const eC_UInt uiRightBorder,
616 const eC_UByte &ubAlpha);
617
620
625 virtual eC_UInt GetImgWidthImpl(const ImageResource_t &eID) const;
626
631 virtual eC_UInt GetImgHeightImpl(const ImageResource_t &eID) const;
632
637 virtual eC_UInt GetImageSize(const ImageResource_t& eID) const;
638
647 const eC_Value& vX1,
648 const eC_Value& vY1,
649 const eC_Value& vX2,
650 const eC_Value& vY2,
651 const eC_Bool bFilled);
652
656 void GenerateTexture(const ImageResource_t &eImageID);
657
662 eC_Value GetZCorrection();
663
668
675 void SetCliprect(const CGUIRect &rkNewClipRect, const eC_Bool &bRotate);
676
679 void Init(void);
680
683 void DeInit(void);
684
693 const eC_Bool& bEnabled,
694 const eC_Int& iX = 0,
695 const eC_Int& iY = 0,
696 const eC_Int& iWidth = 0,
697 const eC_Int& iHeight = 0
698 );
699
700protected:
701 eC_Value m_vRed;
702 eC_Value m_vGreen;
703 eC_Value m_vBlue;
704 eC_Value m_vAlpha;
705
706 eC_TArray<CGUIImageDataGL*> m_apTextures;
707
709
711 Matrix3D_t m_avTransMat;
712
713 eC_Value m_vFovy;
714 eC_Value m_vAspect;
715 eC_Value m_vNear;
716 eC_Value m_vFar;
717
720
721#if GUILIANI_USE_GL_SHADERS == 1
723 Matrix3D_t m_avProjectionMatrix;
724
726 Matrix3D_t m_avModelviewMatrix;
727
729 eC_TListDoubleLinked<Matrix3D_t*> m_kModelviewMatrixStack;
730
732 eC_TListDoubleLinked<Matrix3D_t*> m_kProjectionMatrixStack;
733
734 CGfxWrapGLShader* m_pkShader;
735
737 MatrixType_t m_eActiveMatrix;
738
739 eC_Int m_iLocTextureEnvMode;
740 eC_Int m_iLocTexSampler;
741 eC_Int m_iLocModelViewMatrix;
742 eC_Int m_iLocProjectionMatrix;
743 eC_Int m_iLocMix;
744#endif //#if GUILIANI_USE_GL_SHADERS == 1
745
748
749private:
751 eC_Bool m_bVertexEnabled;
752 eC_Bool m_bTextureCoordsEnabled;
753
755 eC_UInt m_uiCurrentlyBoundBuffer;
756
758 eC_UInt m_uiCurrentlyBoundTexture;
759
761 eC_Bool m_bTexturingActive;
762
763 struct BlitRecord_t
764 {
765 void Reset()
766 {
767 bActive = false;
768 }
769
770 eC_Bool bActive;
771 eC_UInt uiSrcX;
772 eC_UInt uiSrcY;
773 eC_UInt uiSrcWidth;
774 eC_UInt uiSrcHeight;
775 eC_Value vDestX;
776 eC_Value vDestY;
777 eC_Value vDestWidth;
778 eC_Value vDestHeight;
779 };
780
781 struct NinePatchBlit_t
782 {
783 void Reset()
784 {
785 eImageID = DUMMY_IMAGE;
786 for (eC_UByte index = 0; index < 9; ++index)
787 kCoords[index].Reset();
788 ubAlpha = 0;
789 }
790
791 ImageResource_t eImageID;
792 BlitRecord_t kCoords[9];
793 eC_UByte ubAlpha;
794 };
795
796 NinePatchBlit_t m_kBlits;
797
798 // scissoring
799 eC_Bool m_bScissorEnabled;
800 eC_Int m_iScissorX;
801 eC_Int m_iScissorY;
802 eC_Int m_iScissorWidth;
803 eC_Int m_iScissorHeight;
804};
805
806#endif
ImageResource_t
Enumeration of image resource ids.
Definition: GUIImageResource.h:126
The BitmapPlane Class for GL with pseudo offscreen rendering.
Definition: GUIBitmapPlane_GL.h:21
The bitmap plane base class.
Definition: GUIBitmapPlane.h:152
OpenGL Version of CGUIImageData for textures.
Definition: GUIImageDataGL.h:17
Contains information about an image loaded by CGUIImageLoader.
Definition: GUIImageData.h:29
This is the Guiliani base class all controls are derived from.
Definition: GUIObject.h:79
Helper class to supply a platform independent rectangle implementation.
Definition: GUIRect.h:63
OpenGL graphic wrapper base class. This is the base class for all OpenGL related graphic wrappers (Op...
Definition: GfxWrapGL.h:61
virtual void FilledRect(const eC_Value &vX1, const eC_Value &vY1, const eC_Value &vX2, const eC_Value &vY2)
eC_Value m_vNear
near-plane
Definition: GfxWrapGL.h:715
virtual void StoreWrapperState()
virtual void LoadImgImpl(void *pkMemory, const eC_UInt &uiWidth, const eC_UInt &uiHeight, const eC_UInt &eImageType, const ImageResource_t &eID)
eC_Value m_vFovy
fov
Definition: GfxWrapGL.h:713
virtual void Line(const eC_Value &vX1, const eC_Value &vY1, const eC_Value &vX2, const eC_Value &vY2)
virtual eC_Value SetLineWidth(const eC_Value &vWidth)
void DeleteTexture(const eC_UInt &uiTextureID)
virtual void RestoreWrapperState()
virtual ~CGfxWrapGL(void)
Destructor.
void SetPerspectiveProjection(const eC_Value &vFovy, const eC_Value &vAspect, const eC_Value &vNear, const eC_Value &vFar)
virtual void SetScreenSize(const eC_UInt &uiWidth, const eC_UInt &uiHeight)
void GenerateTexture(const ImageResource_t &eImageID)
eC_TArray< CGUIImageDataGL * > m_apTextures
used textures
Definition: GfxWrapGL.h:706
virtual void RestoreBackBuffer(const eC_Value vWidth, const eC_Value vHeight)
eC_Value m_vGreen
green
Definition: GfxWrapGL.h:702
eC_UInt CreateTexture()
void Set2DView(const eC_UInt uiWidth, const eC_UInt uiHeight)
void DeInit(void)
const eC_UInt GetTextureID(const ImageResource_t &eImageID)
void SetClientStates(const eC_Bool &bVertexEnabled, const eC_Bool &bTextureCoordsEnabled)
virtual eC_UInt GetVirtualScreenHeight()
eC_Bool SetNOFImagesImpl(const eC_UInt uiNOFImages)
void SetTexturingActive(const eC_Bool &bTexturingActive)
virtual eC_Bool ImageExists(const ImageResource_t eID) const
virtual eC_Bool InitView()
virtual void BlitImgExtImpl(const ImageResource_t &eID, const eC_UInt &uiSrcX, const eC_UInt &uiSrcY, const eC_UInt &uiSrcWidth, const eC_UInt &uiSrcHeight, const eC_Value &vDestX, const eC_Value &vDestY, const eC_Value &vDestWidth, const eC_Value &vDestHeight, const eC_UByte &ubAlpha=255, const eC_Value &vAngle=eC_FromFloat(0), const eC_Value &vRotCenterX=eC_FromFloat(0.5), const eC_Value &vRotCenterY=eC_FromFloat(0.5))
eC_Value m_vDepthCorrection
depth-corretion
Definition: GfxWrapGL.h:708
virtual void Rect(const eC_Value &vX1, const eC_Value &vY1, const eC_Value &vX2, const eC_Value &vY2)
eC_UInt m_uiVertexVBO
vertex buffer object
Definition: GfxWrapGL.h:719
void DisableBlending()
disable blending
virtual void Arc(const eC_Value &vX1, const eC_Value &vY1, const eC_Value &vX2, const eC_Value &vY2, const eC_Value &vStartAngle, const eC_Value &vEndAngle, const eC_Value &vRotationAngle, const eC_Bool &bFilled)
virtual void ReadTextureData(const eC_UInt &uiTexID, const eC_UInt &uiXPos, const eC_UInt &uiYPos, const eC_UInt &uiWidth, const eC_UInt &uiHeight, void *pkData)=0
void SetCliprect(const CGUIRect &rkNewClipRect, const eC_Bool &bRotate)
eC_Value GetZCorrection()
void BindTexture(const eC_UInt &eType, const eC_UInt &uiTextureID)
void EnableBlending()
enable blending
virtual eC_Bool DrawToScreen()
virtual void LoadImgImpl(const eC_String &psPath, const ImageResource_t &eID)
virtual eC_UInt GetImgHeightImpl(const ImageResource_t &eID) const
Matrix3D_t m_avTransMat
transition matrix
Definition: GfxWrapGL.h:711
virtual CGUIBitmapPlane * CreateGfxDependentBitmap(GUIBitmapPlaneID_t uiNewBitmapID, const CGUIObject &rkParentObject, const eC_Value &vWidth, const eC_Value &vHeight)
virtual void UnloadImg(const ImageResource_t &eID)
static eC_Bool CheckGLError(const eC_String &kCallingMethod, const eC_String &kFunction="")
void InitGLProcs()
void SetMixTextureWithColor(const eC_Bool &bMixWithColor)
virtual eC_UInt GetImageSize(const ImageResource_t &eID) const
void CreateScreen(const eC_UInt &uiWidth, const eC_UInt &uiHeight)
void Init(void)
eC_Value m_vAlpha
alpha
Definition: GfxWrapGL.h:704
eC_Bool IsFBOSupported() const
Definition: GfxWrapGL.h:483
void Set2DView()
eC_Value m_vRed
red
Definition: GfxWrapGL.h:701
virtual void SetForegroundColorImpl(const eC_UByte &ubRed, const eC_UByte &ubGreen, const eC_UByte &ubBlue, const eC_UByte &ubAlpha=255)
virtual eC_UInt GetImgWidthImpl(const ImageResource_t &eID) const
CGUIImageDataGL * GetImageData(const ImageResource_t &eImageID)
virtual void SetCliprect(const CGUIRect &rkNewClipRect)
eC_Value m_vAspect
aspect-ratio
Definition: GfxWrapGL.h:714
virtual void BlitImgExtImpl(const CGUIImageData &kImageData, const eC_Value &vAbsDestX, const eC_Value &vAbsDestY)
Definition: GfxWrapGL.h:607
virtual eC_UInt GetVirtualScreenWidth()
void IncreaseZCorrection()
CGfxWrapGL(void)
Constructor.
virtual void Ellipse(const eC_Value &vX1, const eC_Value &vY1, const eC_Value &vX2, const eC_Value &vY2, const eC_Bool &bFilled)
virtual eC_UInt GetPhysicalScreenWidth()
void BindBuffer(const eC_UInt &eType, const eC_UInt &uiBuffer)
virtual eC_Bool DrawToBitmap(GUIBitmapPlaneID_t uiBitmapID)
void SetScissor(const eC_Bool &bEnabled, const eC_Int &iX=0, const eC_Int &iY=0, const eC_Int &iWidth=0, const eC_Int &iHeight=0)
virtual eC_UInt GetPhysicalScreenHeight()
void DrawRect(const eC_Value &vX1, const eC_Value &vY1, const eC_Value &vX2, const eC_Value &vY2, const eC_Bool bFilled)
eC_Bool m_bFBOSupported
< Indicates if FrameBufferObjects are supported on this machine
Definition: GfxWrapGL.h:747
eC_Value m_vBlue
blue
Definition: GfxWrapGL.h:703
eC_Value m_vFar
far-plane
Definition: GfxWrapGL.h:716
virtual void BlitImgNinePatch(const ImageResource_t &eID, const CGUIRect &kAbsRect, const eC_UInt uiTopBorder, const eC_UInt uiBottomBorder, const eC_UInt uiLeftBorder, const eC_UInt uiRightBorder, const eC_UByte &ubAlpha)
virtual void Ring(const eC_Value &vX1, const eC_Value &vY1, const eC_Value &vX2, const eC_Value &vY2, const eC_Value &vRingWidth, const eC_Value &vStartAngle, const eC_Value &vEndAngle, const eC_Value &vRotationAngle, const eC_Bool &bFilled)
void BlitNinePatchExt()
helper for blitting ninepatch
static const eC_Value cvPixelCenterOffset
Definition: GfxWrapGL.h:70
eC_UInt GetVBO() const
Definition: GfxWrapGL.h:281
class to load and use an OpenGL-shader
Definition: GfxWrapGL.h:29
void Activate() const
CGfxWrapGLShader()
Constructor.
eC_Bool Load(const char *cVertexShader, const char *cFragmentShader)
~CGfxWrapGLShader()
Destructor.
eC_UInt GetShaderID() const
Definition: GfxWrapGL.h:47
The graphics wrapper base class.
Definition: GfxWrap.h:84
Represents a double linked list template with header and tail node.
Definition: eC_TList_doubleLinked.h:67