From dd7595a3475407a7fa96a97393bae8c5220e8762 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Wed, 4 Jan 2012 18:41:13 +1000 Subject: Add the base Enlightenment Foundation Libraries - eina, eet, evas, ecore, embryo, and edje. Note that embryo wont be used, but I'm not sure yet if you can build edje without it. --- .../engines/direct3d/evas_direct3d_device.h | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 libraries/evas/src/modules/engines/direct3d/evas_direct3d_device.h (limited to 'libraries/evas/src/modules/engines/direct3d/evas_direct3d_device.h') diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_device.h b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_device.h new file mode 100644 index 0000000..c5a4b49 --- /dev/null +++ b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_device.h @@ -0,0 +1,87 @@ +#ifndef __EVAS_DIRECT3D_DEVICE_H__ +#define __EVAS_DIRECT3D_DEVICE_H__ + +#include "evas_engine.h" + +#include + +#include "ref.h" +#include "array.h" + + +class D3DDevice : virtual public Referenc +{ +public: + D3DDevice(); + + bool Init(HWND window, int depth, bool fullscreen = false); + bool Reset(int width, int height, int fullscreen); + void Destroy(); + bool Begin(); + bool End(); + + inline LPDIRECT3DDEVICE9 GetDevice(); + inline int GetWidth(); + inline int GetHeight(); + inline HWND GetWindow(); + inline bool GetFullscreen(); + + TArray &GetRenderData(); + + HRESULT SetTexture(DWORD stage, LPDIRECT3DTEXTURE9 tex); + +private: + HRESULT RestoreDevice(); + HRESULT ResetDevice(); + void ResetParams(); + + HRESULT CreateRenderTarget(); + +private: + HWND _window; + LPDIRECT3D9 _object; + LPDIRECT3DDEVICE9 _device; + int _width; + int _height; + int _rot; + int _depth; + bool _device_lost; + bool _scene_rendering; + D3DPRESENT_PARAMETERS _d3dpp; + D3DSURFACE_DESC _backbuffer_desc; + //LPDIRECT3DSURFACE9 _render_target; + LPDIRECT3DSURFACE9 _render_target_data; + //LPDIRECT3DSURFACE9 _original_render_target; + //bool _render_to_texture; + TArray _render_data; + bool _render_data_updated; + + TArray _textures; +}; + +LPDIRECT3DDEVICE9 D3DDevice::GetDevice() +{ + return _device; +} + +int D3DDevice::GetWidth() +{ + return _width; +} + +int D3DDevice::GetHeight() +{ + return _height; +} + +HWND D3DDevice::GetWindow() +{ + return _window; +} + +bool D3DDevice::GetFullscreen() +{ + return (_d3dpp.Windowed == 0); +} + +#endif // __EVAS_DIRECT3D_DEVICE_H__ -- cgit v1.1