Guiliani  Version 2.6 revision 7293 (documentation build 12)
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 virtual void Polygon(
188 eC_Value* pvPoints,
189 const eC_UInt& uiCount,
190 const eC_Bool& bFilled);
191
192 // ---------------------------------------------------------------
193 // Clipping and invalidated rectangles
194 // ---------------------------------------------------------------
195
204 virtual void SetCliprect(const CGUIRect &rkNewClipRect);
205
206 virtual eC_Bool ImageExists(const ImageResource_t eID) const;
207
213
217 void Set2DView();
218
223 void Set2DView(const eC_UInt uiWidth, const eC_UInt uiHeight);
224
231 static eC_Bool CheckGLError(const eC_String& kCallingMethod, const eC_String& kFunction = "");
232
233 virtual eC_Bool DrawToBitmap(GUIBitmapPlaneID_t uiBitmapID);
234
235 virtual eC_Bool DrawToScreen();
236
241 const eC_UInt GetTextureID(const ImageResource_t &eImageID);
242
273 const eC_Value& vFovy,
274 const eC_Value& vAspect,
275 const eC_Value& vNear,
276 const eC_Value& vFar);
277
281 virtual eC_Bool InitView();
282
286 inline eC_UInt GetVBO() const
287 {
288 return m_uiVertexVBO;
289 }
290
291#if defined (GUILIANI_USE_OGL) && !defined (SYSTEM_NAME_DARWIN)
293 static PFNGLBINDBUFFERPROC glBindBuffer_Guiliani;
294 static PFNGLBUFFERDATAPROC glBufferData_Guiliani;
295 static PFNGLGENBUFFERSPROC glGenBuffers_Guiliani;
296 static PFNGLDELETEBUFFERSPROC glDeleteBuffers_Guiliani;
297
299 static PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers_Guiliani;
300 static PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer_Guiliani;
301 static PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D_Guiliani;
302 static PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus_Guiliani;
303 static PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers_Guiliani;
304
305#if GUILIANI_USE_GL_SHADERS == 1
307 static PFNGLBLENDEQUATIONSEPARATEPROC glBlendEquationSeparate_Guiliani;
308 static PFNGLDRAWBUFFERSPROC glDrawBuffers_Guiliani;
309 static PFNGLSTENCILOPSEPARATEPROC glStencilOpSeparate_Guiliani;
310 static PFNGLSTENCILFUNCSEPARATEPROC glStencilFuncSeparate_Guiliani;
311 static PFNGLSTENCILMASKSEPARATEPROC glStencilMaskSeparate_Guiliani;
312 static PFNGLATTACHSHADERPROC glAttachShader_Guiliani;
313 static PFNGLBINDATTRIBLOCATIONPROC glBindAttribLocation_Guiliani;
314 static PFNGLCOMPILESHADERPROC glCompileShader_Guiliani;
315 static PFNGLCREATEPROGRAMPROC glCreateProgram_Guiliani;
316 static PFNGLCREATESHADERPROC glCreateShader_Guiliani;
317 static PFNGLDELETEPROGRAMPROC glDeleteProgram_Guiliani;
318 static PFNGLDELETESHADERPROC glDeleteShader_Guiliani;
319 static PFNGLDETACHSHADERPROC glDetachShader_Guiliani;
320 static PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray_Guiliani;
321 static PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray_Guiliani;
322 static PFNGLGETACTIVEATTRIBPROC glGetActiveAttrib_Guiliani;
323 static PFNGLGETACTIVEUNIFORMPROC glGetActiveUniform_Guiliani;
324 static PFNGLGETATTACHEDSHADERSPROC glGetAttachedShaders_Guiliani;
325 static PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation_Guiliani;
326 static PFNGLGETPROGRAMIVPROC glGetProgramiv_Guiliani;
327 static PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog_Guiliani;
328 static PFNGLGETSHADERIVPROC glGetShaderiv_Guiliani;
329 static PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog_Guiliani;
330 static PFNGLGETSHADERSOURCEPROC glGetShaderSource_Guiliani;
331 static PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation_Guiliani;
332 static PFNGLGETUNIFORMFVPROC glGetUniformfv_Guiliani;
333 static PFNGLGETUNIFORMIVPROC glGetUniformiv_Guiliani;
334 static PFNGLGETVERTEXATTRIBDVPROC glGetVertexAttribdv_Guiliani;
335 static PFNGLGETVERTEXATTRIBFVPROC glGetVertexAttribfv_Guiliani;
336 static PFNGLGETVERTEXATTRIBIVPROC glGetVertexAttribiv_Guiliani;
337 static PFNGLGETVERTEXATTRIBPOINTERVPROC glGetVertexAttribPointerv_Guiliani;
338 static PFNGLISPROGRAMPROC glIsProgram_Guiliani;
339 static PFNGLISSHADERPROC glIsShader_Guiliani;
340 static PFNGLLINKPROGRAMPROC glLinkProgram_Guiliani;
341 static PFNGLSHADERSOURCEPROC glShaderSource_Guiliani;
342 static PFNGLUSEPROGRAMPROC glUseProgram_Guiliani;
343 static PFNGLUNIFORM1FPROC glUniform1f_Guiliani;
344 static PFNGLUNIFORM2FPROC glUniform2f_Guiliani;
345 static PFNGLUNIFORM3FPROC glUniform3f_Guiliani;
346 static PFNGLUNIFORM4FPROC glUniform4f_Guiliani;
347 static PFNGLUNIFORM1IPROC glUniform1i_Guiliani;
348 static PFNGLUNIFORM2IPROC glUniform2i_Guiliani;
349 static PFNGLUNIFORM3IPROC glUniform3i_Guiliani;
350 static PFNGLUNIFORM4IPROC glUniform4i_Guiliani;
351 static PFNGLUNIFORM1FVPROC glUniform1fv_Guiliani;
352 static PFNGLUNIFORM2FVPROC glUniform2fv_Guiliani;
353 static PFNGLUNIFORM3FVPROC glUniform3fv_Guiliani;
354 static PFNGLUNIFORM4FVPROC glUniform4fv_Guiliani;
355 static PFNGLUNIFORM1IVPROC glUniform1iv_Guiliani;
356 static PFNGLUNIFORM2IVPROC glUniform2iv_Guiliani;
357 static PFNGLUNIFORM3IVPROC glUniform3iv_Guiliani;
358 static PFNGLUNIFORM4IVPROC glUniform4iv_Guiliani;
359 static PFNGLUNIFORMMATRIX2FVPROC glUniformMatrix2fv_Guiliani;
360 static PFNGLUNIFORMMATRIX3FVPROC glUniformMatrix3fv_Guiliani;
361 static PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv_Guiliani;
362 static PFNGLVALIDATEPROGRAMPROC glValidateProgram_Guiliani;
363 static PFNGLVERTEXATTRIB1DPROC glVertexAttrib1d_Guiliani;
364 static PFNGLVERTEXATTRIB1DVPROC glVertexAttrib1dv_Guiliani;
365 static PFNGLVERTEXATTRIB1FPROC glVertexAttrib1f_Guiliani;
366 static PFNGLVERTEXATTRIB1FVPROC glVertexAttrib1fv_Guiliani;
367 static PFNGLVERTEXATTRIB1SPROC glVertexAttrib1s_Guiliani;
368 static PFNGLVERTEXATTRIB1SVPROC glVertexAttrib1sv_Guiliani;
369 static PFNGLVERTEXATTRIB2DPROC glVertexAttrib2d_Guiliani;
370 static PFNGLVERTEXATTRIB2DVPROC glVertexAttrib2dv_Guiliani;
371 static PFNGLVERTEXATTRIB2FPROC glVertexAttrib2f_Guiliani;
372 static PFNGLVERTEXATTRIB2FVPROC glVertexAttrib2fv_Guiliani;
373 static PFNGLVERTEXATTRIB2SPROC glVertexAttrib2s_Guiliani;
374 static PFNGLVERTEXATTRIB2SVPROC glVertexAttrib2sv_Guiliani;
375 static PFNGLVERTEXATTRIB3DPROC glVertexAttrib3d_Guiliani;
376 static PFNGLVERTEXATTRIB3DVPROC glVertexAttrib3dv_Guiliani;
377 static PFNGLVERTEXATTRIB3FPROC glVertexAttrib3f_Guiliani;
378 static PFNGLVERTEXATTRIB3FVPROC glVertexAttrib3fv_Guiliani;
379 static PFNGLVERTEXATTRIB3SPROC glVertexAttrib3s_Guiliani;
380 static PFNGLVERTEXATTRIB3SVPROC glVertexAttrib3sv_Guiliani;
381 static PFNGLVERTEXATTRIB4NBVPROC glVertexAttrib4Nbv_Guiliani;
382 static PFNGLVERTEXATTRIB4NIVPROC glVertexAttrib4Niv_Guiliani;
383 static PFNGLVERTEXATTRIB4NSVPROC glVertexAttrib4Nsv_Guiliani;
384 static PFNGLVERTEXATTRIB4NUBPROC glVertexAttrib4Nub_Guiliani;
385 static PFNGLVERTEXATTRIB4NUBVPROC glVertexAttrib4Nubv_Guiliani;
386 static PFNGLVERTEXATTRIB4NUIVPROC glVertexAttrib4Nuiv_Guiliani;
387 static PFNGLVERTEXATTRIB4NUSVPROC glVertexAttrib4Nusv_Guiliani;
388 static PFNGLVERTEXATTRIB4BVPROC glVertexAttrib4bv_Guiliani;
389 static PFNGLVERTEXATTRIB4DPROC glVertexAttrib4d_Guiliani;
390 static PFNGLVERTEXATTRIB4DVPROC glVertexAttrib4dv_Guiliani;
391 static PFNGLVERTEXATTRIB4FPROC glVertexAttrib4f_Guiliani;
392 static PFNGLVERTEXATTRIB4FVPROC glVertexAttrib4fv_Guiliani;
393 static PFNGLVERTEXATTRIB4IVPROC glVertexAttrib4iv_Guiliani;
394 static PFNGLVERTEXATTRIB4SPROC glVertexAttrib4s_Guiliani;
395 static PFNGLVERTEXATTRIB4SVPROC glVertexAttrib4sv_Guiliani;
396 static PFNGLVERTEXATTRIB4UBVPROC glVertexAttrib4ubv_Guiliani;
397 static PFNGLVERTEXATTRIB4UIVPROC glVertexAttrib4uiv_Guiliani;
398 static PFNGLVERTEXATTRIB4USVPROC glVertexAttrib4usv_Guiliani;
399 static PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer_Guiliani;
400#endif
401
402#endif
403
408
409#if GUILIANI_USE_GL_SHADERS == 1
413 eC_Bool InitShaders();
414
420 void MultMatrix(const Matrix3D_t& avMatrix);
421
423 void SetOrthoProjection(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 SetFrustumProjection(const eC_Value& vLeft, const eC_Value& vRight,
429 const eC_Value& vBottom, const eC_Value& vTop,
430 const eC_Value& vNear, const eC_Value& vFar);
431
433 void SetRotation(const eC_Value& vDegrees, eC_Value vX, eC_Value vY, eC_Value vZ);
434
436 void SetTranslation(const eC_Value& vXTranslate, const eC_Value& vYTranslate, const eC_Value& vZTranslate);
437
439 void SetScaling(const eC_Value& vXScale, const eC_Value vYScale, const eC_Value vZScale);
440
442 void SetUniformScaling(const eC_Value& vScale);
443
447 eC_UInt GetShaderID() const;
448
452 void SetMatrix(const Matrix3D_t& avNewMatrix);
453
457 const Matrix3D_t& GetMatrix() const;
458
460 void PushMatrix();
461
463 void PopMatrix();
464
466 enum MatrixType_t
467 {
468 MT_PROJECTION,
469 MT_MODELVIEW
470 };
471
475 inline void SetMatrixMode(const MatrixType_t& eNewActiveMatrix)
476 {
477 m_eActiveMatrix = eNewActiveMatrix;
478 }
479
481 void LoadIdentity();
482
483#endif //#if GUILIANI_USE_GL_SHADERS == 1
484
488 eC_Bool IsFBOSupported() const { return m_bFBOSupported; }
489
495 const eC_Bool& bVertexEnabled,
496 const eC_Bool& bTextureCoordsEnabled);
497
502 void BindBuffer(const eC_UInt& eType, const eC_UInt& uiBuffer);
503
508 void BindTexture(const eC_UInt& eType, const eC_UInt& uiTextureID);
509
513 void SetTexturingActive(const eC_Bool& bTexturingActive);
514
518 void SetMixTextureWithColor(const eC_Bool& bMixWithColor);
519
523 eC_UInt CreateTexture();
524
528 void DeleteTexture(const eC_UInt& uiTextureID);
529
538 virtual void ReadTextureData(
539 const eC_UInt& uiTexID,
540 const eC_UInt& uiXPos, const eC_UInt& uiYPos,
541 const eC_UInt& uiWidth, const eC_UInt& uiHeight, void* pkData) = 0;
542
545
548
549protected:
550 // ---------------------------------------------------------------
551 // Construction / destruction
552 // ---------------------------------------------------------------
553
555 virtual ~CGfxWrapGL(void);
556
559
561 GUIBitmapPlaneID_t uiNewBitmapID,
562 const CGUIObject& rkParentObject,
563 const eC_Value& vWidth, const eC_Value& vHeight);
564
570 virtual void RestoreBackBuffer(const eC_Value vWidth, const eC_Value vHeight);
571
577 virtual void LoadImgImpl(const eC_String& psPath, const ImageResource_t &eID);
578
586 virtual void LoadImgImpl(
587 void* pkMemory,
588 const eC_UInt& uiWidth,
589 const eC_UInt& uiHeight,
590 const eC_UInt& eImageType,
591 const ImageResource_t &eID);
592
598 virtual void UnloadImg(const ImageResource_t &eID);
599
600 eC_Bool SetNOFImagesImpl(const eC_UInt uiNOFImages);
601
602 virtual void BlitImgExtImpl(
603 const ImageResource_t &eID,
604 const eC_UInt &uiSrcX, const eC_UInt &uiSrcY,
605 const eC_UInt &uiSrcWidth, const eC_UInt &uiSrcHeight,
606 const eC_Value& vDestX, const eC_Value& vDestY,
607 const eC_Value& vDestWidth, const eC_Value& vDestHeight,
608 const eC_UByte &ubAlpha = 255,
609 const eC_Value& vAngle = eC_FromFloat(0),
610 const eC_Value& vRotCenterX = eC_FromFloat(0.5), const eC_Value& vRotCenterY = eC_FromFloat(0.5));
611
612 virtual void BlitImgExtImpl(const CGUIImageData& kImageData, const eC_Value& vAbsDestX, const eC_Value& vAbsDestY) {}
613
614 virtual void BlitImgNinePatch(
615 const ImageResource_t &eID,
616 const CGUIRect& kAbsRect,
617 const eC_UInt uiTopBorder,
618 const eC_UInt uiBottomBorder,
619 const eC_UInt uiLeftBorder,
620 const eC_UInt uiRightBorder,
621 const eC_UByte &ubAlpha);
622
625
630 virtual eC_UInt GetImgWidthImpl(const ImageResource_t &eID) const;
631
636 virtual eC_UInt GetImgHeightImpl(const ImageResource_t &eID) const;
637
642 virtual eC_UInt GetImageSize(const ImageResource_t& eID) const;
643
652 const eC_Value& vX1,
653 const eC_Value& vY1,
654 const eC_Value& vX2,
655 const eC_Value& vY2,
656 const eC_Bool bFilled);
657
661 void GenerateTexture(const ImageResource_t &eImageID);
662
667 eC_Value GetZCorrection();
668
673
680 void SetCliprect(const CGUIRect &rkNewClipRect, const eC_Bool &bRotate);
681
684 void Init(void);
685
688 void DeInit(void);
689
698 const eC_Bool& bEnabled,
699 const eC_Int& iX = 0,
700 const eC_Int& iY = 0,
701 const eC_Int& iWidth = 0,
702 const eC_Int& iHeight = 0
703 );
704
705protected:
706 eC_Value m_vRed;
707 eC_Value m_vGreen;
708 eC_Value m_vBlue;
709 eC_Value m_vAlpha;
710
711 eC_TArray<CGUIImageDataGL*> m_apTextures;
712
714
716 Matrix3D_t m_avTransMat;
717
718 eC_Value m_vFovy;
719 eC_Value m_vAspect;
720 eC_Value m_vNear;
721 eC_Value m_vFar;
722
725
726#if GUILIANI_USE_GL_SHADERS == 1
728 Matrix3D_t m_avProjectionMatrix;
729
731 Matrix3D_t m_avModelviewMatrix;
732
734 eC_TListDoubleLinked<Matrix3D_t*> m_kModelviewMatrixStack;
735
737 eC_TListDoubleLinked<Matrix3D_t*> m_kProjectionMatrixStack;
738
739 CGfxWrapGLShader* m_pkShader;
740
742 MatrixType_t m_eActiveMatrix;
743
744 eC_Int m_iLocTextureEnvMode;
745 eC_Int m_iLocTexSampler;
746 eC_Int m_iLocModelViewMatrix;
747 eC_Int m_iLocProjectionMatrix;
748 eC_Int m_iLocMix;
749#endif //#if GUILIANI_USE_GL_SHADERS == 1
750
753
754private:
756 eC_Bool m_bVertexEnabled;
757 eC_Bool m_bTextureCoordsEnabled;
758
760 eC_UInt m_uiCurrentlyBoundBuffer;
761
763 eC_UInt m_uiCurrentlyBoundTexture;
764
766 eC_Bool m_bTexturingActive;
767
768 struct BlitRecord_t
769 {
770 void Reset()
771 {
772 bActive = false;
773 }
774
775 eC_Bool bActive;
776 eC_UInt uiSrcX;
777 eC_UInt uiSrcY;
778 eC_UInt uiSrcWidth;
779 eC_UInt uiSrcHeight;
780 eC_Value vDestX;
781 eC_Value vDestY;
782 eC_Value vDestWidth;
783 eC_Value vDestHeight;
784 };
785
786 struct NinePatchBlit_t
787 {
788 void Reset()
789 {
790 eImageID = DUMMY_IMAGE;
791 for (eC_UByte index = 0; index < 9; ++index)
792 kCoords[index].Reset();
793 ubAlpha = 0;
794 }
795
796 ImageResource_t eImageID;
797 BlitRecord_t kCoords[9];
798 eC_UByte ubAlpha;
799 };
800
801 NinePatchBlit_t m_kBlits;
802
803 // scissoring
804 eC_Bool m_bScissorEnabled;
805 eC_Int m_iScissorX;
806 eC_Int m_iScissorY;
807 eC_Int m_iScissorWidth;
808 eC_Int m_iScissorHeight;
809};
810
811#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:81
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:720
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:718
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:711
virtual void RestoreBackBuffer(const eC_Value vWidth, const eC_Value vHeight)
eC_Value m_vGreen
green
Definition: GfxWrapGL.h:707
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:713
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:724
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:716
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:709
eC_Bool IsFBOSupported() const
Definition: GfxWrapGL.h:488
void Set2DView()
eC_Value m_vRed
red
Definition: GfxWrapGL.h:706
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:719
virtual void BlitImgExtImpl(const CGUIImageData &kImageData, const eC_Value &vAbsDestX, const eC_Value &vAbsDestY)
Definition: GfxWrapGL.h:612
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:752
eC_Value m_vBlue
blue
Definition: GfxWrapGL.h:708
eC_Value m_vFar
far-plane
Definition: GfxWrapGL.h:721
virtual void Polygon(eC_Value *pvPoints, const eC_UInt &uiCount, const eC_Bool &bFilled)
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:286
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:88
Represents a double linked list template with header and tail node.
Definition: eC_TList_doubleLinked.h:67