10#ifndef __GFXENV_DRM_H__
11#define __GFXENV_DRM_H__
14#include "GUICommonEnums.h"
21#include <xf86drmMode.h>
32 struct gbm_device *
dev;
66 const char* pcInterface,
69 const eC_UInt& uiWidth,
70 const eC_UInt& uiHeight,
71 const eC_Bool& bUseOverlayPlane,
72 const eC_UInt& uiOverlayPlaneID,
73 const eC_UInt& uiXPosition,
74 const eC_UInt& uiYPosition);
87 const char* pcInterface,
90 const eC_UInt& uiWidth,
91 const eC_UInt& uiHeight,
92 const eC_Bool& bAutoDetect,
93 const eC_UInt& uiMaxVRefresh);
109 const char* pcInterface,
112 const eC_UInt& uiWidth,
113 const eC_UInt& uiHeight,
114 const eC_Bool& bUseOverlayPlane,
115 const eC_UInt& uiOverlayPlaneID,
116 const eC_UInt& uiXPosition,
117 const eC_UInt& uiYPosition,
118 const eC_Bool& bAutoDetect,
119 const eC_UInt& uiMaxVRefresh);
135 const eC_UInt& uiLayerID,
136 void* pkRenderBuffer,
137 void* pkDisplayBuffer,
138 const eC_UInt& uiWidth,
139 const eC_UInt& uiHeight);
149 uint32_t BufferHandle;
150 uint32_t FrameBufferID;
153 uint32_t BytesPerPixel;
161 FrameBufferData** Buffers;
180 eC_Bool Init(
const char* pcInterface);
184 void GetOverlayPlanes(int32_t crtc_index, eC_TArray<OverlayPlane>& kLayerIDs);
186 FrameBufferData* CreateFrameBuffer(
187 const eC_UInt& uiWidth,
188 const eC_UInt& uiHeight,
190 void DeleteFrameBuffer(FrameBufferData* pkData);
192 eC_Bool MapFrameBuffer(FrameBufferData* pkData);
193 void UnmapFrameBuffer(FrameBufferData* pkData);
195 DRMFrameBuffer* GetFrameBufferFromBO(
struct gbm_bo* bufferObject);
197 void CopyBuffer(
int iX1,
int iY1,
int iRectWidth,
int iRectHeight);
199 int Flip(uint32_t fb_id);
201 eC_Bool UpdatePlanePosition(
202 uint32_t plane_id, uint32_t fb_id,
203 int32_t crt_x, int32_t crt_y,
204 uint32_t crt_w, uint32_t crt_h,
205 uint32_t src_x, uint32_t src_y,
206 uint32_t src_w, uint32_t src_h);
208 eC_Bool UpdatePlaneAlpha(
213 void RefreshLayer(eC_UInt uiLayerIndex);
215 void RefreshLayers();
221 eC_Bool m_bUseOverlayPlane;
222 uint32_t m_uiOverlayPlaneID;
223 eC_UInt m_uiOverlayXPosition;
224 eC_UInt m_uiOverlayYPosition;
226 eC_Bool m_bAutoDetect;
227 eC_UInt m_uiMaxVRefresh;
229 struct gbm_bo* m_pkBufferObject;
230 DRMFrameBuffer* m_pkFrameBuffer;
234 eC_TArray<OverlayPlane> m_kOverlayPlanes;
236 FrameBufferData* m_pkMainFBData;
238 eC_UByte* m_pubMappedFB;
239 eC_UByte* m_pubDrawBuffer;
241 LayerData* m_pkLayers;
ImageType_t
Definition: GUICommonEnums.h:80
Helper class to supply a platform independent rectangle implementation.
Definition: GUIRect.h:63
Wrapper class for the DRM interface.
Definition: GfxEnvDRM.h:27
CGfxEnvDRM(const char *pcInterface, const SurfaceMode_t &eSurfaceMode, const CGUICommonEnums::ImageType_t &eScreenFormat, const eC_UInt &uiWidth, const eC_UInt &uiHeight, const eC_Bool &bUseOverlayPlane, const eC_UInt &uiOverlayPlaneID, const eC_UInt &uiXPosition, const eC_UInt &uiYPosition, const eC_Bool &bAutoDetect, const eC_UInt &uiMaxVRefresh)
virtual void UpdateLayer(const LayerConfiguration_t &rkLayerConfig, const LayerUpdate_t &eUpdateReason)
virtual void * GetDisplayHandle() const
virtual void * GetWindowHandle() const
static eC_Bool CreateInstance(const char *pcInterface, const SurfaceMode_t &eSurfaceMode, const CGUICommonEnums::ImageType_t &eScreenFormat, const eC_UInt &uiWidth, const eC_UInt &uiHeight, const eC_Bool &bAutoDetect, const eC_UInt &uiMaxVRefresh)
virtual eC_Bool SwapBuffers()
virtual void InitLayer(const LayerConfiguration_t &kLayerConfig)
virtual eC_Bool UpdateLayerBuffers(const eC_UInt &uiLayerID, void *pkRenderBuffer, void *pkDisplayBuffer, const eC_UInt &uiWidth, const eC_UInt &uiHeight)
static eC_Bool CreateInstance(const char *pcInterface, const SurfaceMode_t &eSurfaceMode, const CGUICommonEnums::ImageType_t &eScreenFormat, const eC_UInt &uiWidth, const eC_UInt &uiHeight, const eC_Bool &bUseOverlayPlane, const eC_UInt &uiOverlayPlaneID, const eC_UInt &uiXPosition, const eC_UInt &uiYPosition)
virtual eC_Bool RefreshScreen(const CGUIRect &rkInvalidatedArea)
virtual void ** GetFrameBuffers() const
virtual void EndOfRefresh()
SurfaceMode_t
Definition: GfxEnv.h:60
virtual eC_UByte GetBPP() const
Definition: GfxEnvDRM.h:38
uint32_t fb_id
fb id
Definition: GfxEnvDRM.h:40
struct gbm_bo * bufferObject
bo
Definition: GfxEnvDRM.h:39
Definition: GfxEnvDRM.h:45
uint32_t connector_id
connector
Definition: GfxEnvDRM.h:49
drmModeModeInfo * mode
mode
Definition: GfxEnvDRM.h:47
uint32_t crtc_id
crtc
Definition: GfxEnvDRM.h:48
int fd
descriptor
Definition: GfxEnvDRM.h:46
Definition: GfxEnvDRM.h:31
struct gbm_surface * surface
surface
Definition: GfxEnvDRM.h:33
struct gbm_device * dev
device
Definition: GfxEnvDRM.h:32
Definition: GUILayerConfig.h:37