Guiliani  Version 2.6 revision 7293 (documentation build 12)
GfxEnvSDL2.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 __GFXENVSDL2_H__
11#define __GFXENVSDL2_H__
12
13#include "GUIRect.h"
14#include "GfxEnv.h"
15
16#include <SDL.h>
17#include <SDL_opengl.h>
18
20
26class CGfxEnvSDL2 : public CGfxEnv
27{
28public:
38 static eC_Bool CreateInstance(
39 const SurfaceMode_t& eSurfaceMode,
40 const CGUICommonEnums::ImageType_t& eScreenFormat,
41 const eC_UInt& uiWidth,
42 const eC_UInt& uiHeight,
43 const eC_UInt& uiBufferCount = 1,
44 const eC_Bool& bResizable = false);
45
46 virtual void* GetWindowHandle() const;
47
48protected:
58 const SurfaceMode_t& eSurfaceMode,
59 const CGUICommonEnums::ImageType_t& eScreenFormat,
60 const eC_UInt& uiWidth,
61 const eC_UInt& uiHeight,
62 const eC_UInt& uiBufferCount = 1,
63 const eC_Bool& bResizable = false);
64
67 virtual ~CGfxEnvSDL2();
68
69protected:
70 virtual eC_Bool IsCreated() const;
71
72 virtual void SetScreenPosition(const eC_UInt& uiX, const eC_UInt& uiY);
73 virtual void SetScreenSize(const eC_UInt& uiWidth, const eC_UInt& uiHeight);
74
75 virtual eC_UInt GetXPos() const;
76 virtual eC_UInt GetYPos() const;
77 virtual eC_UInt GetWidth() const;
78 virtual eC_UInt GetHeight() const;
79
80 virtual void EndOfRefresh();
81
82 virtual void** GetFrameBuffers() const;
83
84 virtual void SetWindowCaption(const eC_String& kCaption);
85
86 virtual eC_Bool SwapBuffers();
87
88protected:
90 SDL_Window* m_pkSDLWindow;
92 SDL_GLContext m_pkGLContext;
94 SDL_Renderer* m_pkSDLRenderer;
98 SDL_Texture* m_pkSDLTexture;
99
100private:
101 void CreateScreen();
102
106 CGfxEnvSDL2(const CGfxEnvSDL2& kSource);
107
111 CGfxEnvSDL2& operator=(const CGfxEnvSDL2& kSource);
112
113private:
114 eC_UInt m_uiFlags;
115 int m_iSDLSurfaceBitsPerPixel;
116};
117#endif
ImageType_t
Definition: GUICommonEnums.h:80
Definition: GfxEnv.h:53
SurfaceMode_t
Definition: GfxEnv.h:60
Implements SDL2-specific features.
Definition: GfxEnvSDL2.h:27
virtual eC_Bool IsCreated() const
virtual void EndOfRefresh()
virtual eC_UInt GetHeight() const
SDL_GLContext m_pkGLContext
this is used as the context for OpenGL
Definition: GfxEnvSDL2.h:92
virtual ~CGfxEnvSDL2()
SDL_Window * m_pkSDLWindow
main-window
Definition: GfxEnvSDL2.h:90
CGfxEnvSDL2(const SurfaceMode_t &eSurfaceMode, const CGUICommonEnums::ImageType_t &eScreenFormat, const eC_UInt &uiWidth, const eC_UInt &uiHeight, const eC_UInt &uiBufferCount=1, const eC_Bool &bResizable=false)
virtual void SetScreenPosition(const eC_UInt &uiX, const eC_UInt &uiY)
SDL_Texture * m_pkSDLTexture
the texture used for framebuffer-access
Definition: GfxEnvSDL2.h:98
virtual eC_UInt GetXPos() const
SDL_Renderer * m_pkSDLRenderer
main-renderer needed for framebuffer-access
Definition: GfxEnvSDL2.h:94
SDL_Surface * m_pkSDLFramebufferSurface
the surface used for framebuffer-access
Definition: GfxEnvSDL2.h:96
virtual void * GetWindowHandle() const
virtual eC_UInt GetWidth() const
virtual void SetScreenSize(const eC_UInt &uiWidth, const eC_UInt &uiHeight)
static eC_Bool CreateInstance(const SurfaceMode_t &eSurfaceMode, const CGUICommonEnums::ImageType_t &eScreenFormat, const eC_UInt &uiWidth, const eC_UInt &uiHeight, const eC_UInt &uiBufferCount=1, const eC_Bool &bResizable=false)
virtual void ** GetFrameBuffers() const
virtual eC_UInt GetYPos() const
virtual eC_Bool SwapBuffers()
virtual void SetWindowCaption(const eC_String &kCaption)