Index: webrtc/modules/video_render/windows/video_render_direct3d9.h |
diff --git a/webrtc/modules/video_render/windows/video_render_direct3d9.h b/webrtc/modules/video_render/windows/video_render_direct3d9.h |
deleted file mode 100644 |
index eaa8c147e2e709268ea2e7db40d420cc33139124..0000000000000000000000000000000000000000 |
--- a/webrtc/modules/video_render/windows/video_render_direct3d9.h |
+++ /dev/null |
@@ -1,256 +0,0 @@ |
-/* |
- * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. |
- * |
- * Use of this source code is governed by a BSD-style license |
- * that can be found in the LICENSE file in the root of the source |
- * tree. An additional intellectual property rights grant can be found |
- * in the file PATENTS. All contributing project authors may |
- * be found in the AUTHORS file in the root of the source tree. |
- */ |
- |
-#ifndef WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_WINDOWS_VIDEO_RENDER_DIRECT3D9_H_ |
-#define WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_WINDOWS_VIDEO_RENDER_DIRECT3D9_H_ |
- |
-#include <memory> |
- |
-#include "webrtc/modules/video_render/windows/i_video_render_win.h" |
- |
-#include <d3d9.h> |
-#include <ddraw.h> |
- |
-#include <Map> |
- |
-// Added |
-#include "webrtc/base/platform_thread.h" |
-#include "webrtc/modules/video_render/video_render_defines.h" |
- |
-#pragma comment(lib, "d3d9.lib") // located in DirectX SDK |
- |
-namespace webrtc { |
-class CriticalSectionWrapper; |
-class EventTimerWrapper; |
-class Trace; |
- |
-class D3D9Channel: public VideoRenderCallback |
-{ |
-public: |
- D3D9Channel(LPDIRECT3DDEVICE9 pd3DDevice, |
- CriticalSectionWrapper* critSect, Trace* trace); |
- |
- virtual ~D3D9Channel(); |
- |
- // Inherited from VideoRencerCallback, called from VideoAPI class. |
- // Called when the incomming frame size and/or number of streams in mix changes |
- virtual int FrameSizeChange(int width, int height, int numberOfStreams); |
- |
- // A new frame is delivered. |
- virtual int DeliverFrame(const VideoFrame& videoFrame); |
- virtual int32_t RenderFrame(const uint32_t streamId, |
- const VideoFrame& videoFrame); |
- |
- // Called to check if the video frame is updated. |
- int IsUpdated(bool& isUpdated); |
- // Called after the video frame has been render to the screen |
- int RenderOffFrame(); |
- // Called to get the texture that contains the video frame |
- LPDIRECT3DTEXTURE9 GetTexture(); |
- // Called to get the texture(video frame) size |
- int GetTextureWidth(); |
- int GetTextureHeight(); |
- // |
- void SetStreamSettings(uint16_t streamId, |
- uint32_t zOrder, |
- float startWidth, |
- float startHeight, |
- float stopWidth, |
- float stopHeight); |
- int GetStreamSettings(uint16_t streamId, |
- uint32_t& zOrder, |
- float& startWidth, |
- float& startHeight, |
- float& stopWidth, |
- float& stopHeight); |
- |
- int ReleaseTexture(); |
- int RecreateTexture(LPDIRECT3DDEVICE9 pd3DDevice); |
- |
-protected: |
- |
-private: |
- //critical section passed from the owner |
- CriticalSectionWrapper* _critSect; |
- LPDIRECT3DDEVICE9 _pd3dDevice; |
- LPDIRECT3DTEXTURE9 _pTexture; |
- |
- bool _bufferIsUpdated; |
- // the frame size |
- int _width; |
- int _height; |
- //sream settings |
- //TODO support multiple streams in one channel |
- uint16_t _streamId; |
- uint32_t _zOrder; |
- float _startWidth; |
- float _startHeight; |
- float _stopWidth; |
- float _stopHeight; |
-}; |
- |
-class VideoRenderDirect3D9: IVideoRenderWin |
-{ |
-public: |
- VideoRenderDirect3D9(Trace* trace, HWND hWnd, bool fullScreen); |
- ~VideoRenderDirect3D9(); |
- |
-public: |
- //IVideoRenderWin |
- |
- /************************************************************************** |
- * |
- * Init |
- * |
- ***************************************************************************/ |
- virtual int32_t Init(); |
- |
- /************************************************************************** |
- * |
- * Incoming Streams |
- * |
- ***************************************************************************/ |
- virtual VideoRenderCallback |
- * CreateChannel(const uint32_t streamId, |
- const uint32_t zOrder, |
- const float left, |
- const float top, |
- const float right, |
- const float bottom); |
- |
- virtual int32_t DeleteChannel(const uint32_t streamId); |
- |
- virtual int32_t GetStreamSettings(const uint32_t channel, |
- const uint16_t streamId, |
- uint32_t& zOrder, |
- float& left, float& top, |
- float& right, float& bottom); |
- |
- /************************************************************************** |
- * |
- * Start/Stop |
- * |
- ***************************************************************************/ |
- |
- virtual int32_t StartRender(); |
- virtual int32_t StopRender(); |
- |
- /************************************************************************** |
- * |
- * Properties |
- * |
- ***************************************************************************/ |
- |
- virtual bool IsFullScreen(); |
- |
- virtual int32_t SetCropping(const uint32_t channel, |
- const uint16_t streamId, |
- const float left, const float top, |
- const float right, const float bottom); |
- |
- virtual int32_t ConfigureRenderer(const uint32_t channel, |
- const uint16_t streamId, |
- const unsigned int zOrder, |
- const float left, const float top, |
- const float right, const float bottom); |
- |
- virtual int32_t SetTransparentBackground(const bool enable); |
- |
- virtual int32_t ChangeWindow(void* window); |
- |
- virtual int32_t GetGraphicsMemory(uint64_t& totalMemory, |
- uint64_t& availableMemory); |
- |
- virtual int32_t SetText(const uint8_t textId, |
- const uint8_t* text, |
- const int32_t textLength, |
- const uint32_t colorText, |
- const uint32_t colorBg, |
- const float left, const float top, |
- const float rigth, const float bottom); |
- |
- virtual int32_t SetBitmap(const void* bitMap, |
- const uint8_t pictureId, |
- const void* colorKey, |
- const float left, const float top, |
- const float right, const float bottom); |
- |
-public: |
- // Get a channel by channel id |
- D3D9Channel* GetD3DChannel(int channel); |
- int UpdateRenderSurface(); |
- |
-protected: |
- // The thread rendering the screen |
- static bool ScreenUpdateThreadProc(void* obj); |
- bool ScreenUpdateProcess(); |
- |
-private: |
- // Init/close the d3d device |
- int InitDevice(); |
- int CloseDevice(); |
- |
- // Transparent related functions |
- int SetTransparentColor(LPDIRECT3DTEXTURE9 pTexture, |
- DDCOLORKEY* transparentColorKey, |
- DWORD width, |
- DWORD height); |
- |
- CriticalSectionWrapper& _refD3DCritsect; |
- Trace* _trace; |
- // TODO(pbos): Remove unique_ptr and use PlatformThread directly. |
- std::unique_ptr<rtc::PlatformThread> _screenUpdateThread; |
- EventTimerWrapper* _screenUpdateEvent; |
- |
- HWND _hWnd; |
- bool _fullScreen; |
- RECT _originalHwndRect; |
- //FIXME we probably don't need this since all the information can be get from _d3dChannels |
- int _channel; |
- //Window size |
- UINT _winWidth; |
- UINT _winHeight; |
- |
- // Device |
- LPDIRECT3D9 _pD3D; // Used to create the D3DDevice |
- LPDIRECT3DDEVICE9 _pd3dDevice; // Our rendering device |
- LPDIRECT3DVERTEXBUFFER9 _pVB; // Buffer to hold Vertices |
- LPDIRECT3DTEXTURE9 _pTextureLogo; |
- |
- std::map<int, D3D9Channel*> _d3dChannels; |
- std::multimap<int, unsigned int> _d3dZorder; |
- |
- // The position where the logo will be placed |
- float _logoLeft; |
- float _logoTop; |
- float _logoRight; |
- float _logoBottom; |
- |
- typedef HRESULT (WINAPI *DIRECT3DCREATE9EX)(UINT SDKVersion, IDirect3D9Ex**); |
- LPDIRECT3DSURFACE9 _pd3dSurface; |
- |
- DWORD GetVertexProcessingCaps(); |
- int InitializeD3D(HWND hWnd, D3DPRESENT_PARAMETERS* pd3dpp); |
- |
- D3DPRESENT_PARAMETERS _d3dpp; |
- int ResetDevice(); |
- |
- int UpdateVerticeBuffer(LPDIRECT3DVERTEXBUFFER9 pVB, int offset, |
- float startWidth, float startHeight, |
- float stopWidth, float stopHeight); |
- |
- //code for providing graphics settings |
- DWORD _totalMemory; |
- DWORD _availableMemory; |
-}; |
- |
-} // namespace webrtc |
- |
-#endif // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_WINDOWS_VIDEO_RENDER_DIRECT3D9_H_ |