mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 14:49:42 -06:00
Moving pixel engine and command processor from core to video common. This will break previous save states. Adds decoding single pixels to texture decoder.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4391 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -23,7 +23,6 @@ namespace Common
|
||||
PluginVideo::PluginVideo(const char *_Filename) : CPlugin(_Filename), validVideo(false)
|
||||
{
|
||||
Video_Prepare = 0;
|
||||
Video_SendFifoData = 0;
|
||||
Video_BeginField = 0;
|
||||
Video_EndField = 0;
|
||||
Video_EnterLoop = 0;
|
||||
@ -31,11 +30,17 @@ PluginVideo::PluginVideo(const char *_Filename) : CPlugin(_Filename), validVideo
|
||||
Video_Screenshot = 0;
|
||||
Video_AddMessage = 0;
|
||||
Video_AccessEFB = 0;
|
||||
Video_SetRendering = 0;
|
||||
Video_CommandProcessorRead16 = 0;
|
||||
Video_CommandProcessorWrite16 = 0;
|
||||
Video_PixelEngineRead16 = 0;
|
||||
Video_PixelEngineWrite16 = 0;
|
||||
Video_PixelEngineWrite32 = 0;
|
||||
Video_GatherPipeBursted = 0;
|
||||
Video_WaitForFrameFinish = 0;
|
||||
|
||||
Video_Prepare = reinterpret_cast<TVideo_Prepare>
|
||||
(LoadSymbol("Video_Prepare"));
|
||||
Video_SendFifoData = reinterpret_cast<TVideo_SendFifoData>
|
||||
(LoadSymbol("Video_SendFifoData"));
|
||||
Video_BeginField = reinterpret_cast<TVideo_BeginField>
|
||||
(LoadSymbol("Video_BeginField"));
|
||||
Video_EndField = reinterpret_cast<TVideo_EndField>
|
||||
@ -50,19 +55,40 @@ PluginVideo::PluginVideo(const char *_Filename) : CPlugin(_Filename), validVideo
|
||||
(LoadSymbol("Video_AddMessage"));
|
||||
Video_AccessEFB = reinterpret_cast<TVideo_AccessEFB>
|
||||
(LoadSymbol("Video_AccessEFB"));
|
||||
Video_SetRendering = reinterpret_cast<TVideo_SetRendering>
|
||||
Video_SetRendering = reinterpret_cast<TVideo_SetRendering>
|
||||
(LoadSymbol("Video_SetRendering"));
|
||||
Video_CommandProcessorRead16 = reinterpret_cast<TVideo_Read16>
|
||||
(LoadSymbol("Video_CommandProcessorRead16"));
|
||||
Video_CommandProcessorWrite16 = reinterpret_cast<TVideo_Write16>
|
||||
(LoadSymbol("Video_CommandProcessorWrite16"));
|
||||
Video_PixelEngineRead16 = reinterpret_cast<TVideo_Read16>
|
||||
(LoadSymbol("Video_PixelEngineRead16"));
|
||||
Video_PixelEngineWrite16 = reinterpret_cast<TVideo_Write16>
|
||||
(LoadSymbol("Video_PixelEngineWrite16"));
|
||||
Video_PixelEngineWrite32 = reinterpret_cast<TVideo_Write32>
|
||||
(LoadSymbol("Video_PixelEngineWrite32"));
|
||||
Video_GatherPipeBursted = reinterpret_cast<TVideo_GatherPipeBursted>
|
||||
(LoadSymbol("Video_GatherPipeBursted"));
|
||||
Video_WaitForFrameFinish = reinterpret_cast<TVideo_WaitForFrameFinish>
|
||||
(LoadSymbol("Video_WaitForFrameFinish"));
|
||||
|
||||
if ((Video_Prepare != 0) &&
|
||||
(Video_SendFifoData != 0) &&
|
||||
(Video_BeginField != 0) &&
|
||||
(Video_EndField != 0) &&
|
||||
(Video_EnterLoop != 0) &&
|
||||
(Video_ExitLoop != 0) &&
|
||||
(Video_Screenshot != 0) &&
|
||||
(Video_AddMessage != 0) &&
|
||||
(Video_SetRendering != 0) &&
|
||||
(Video_AccessEFB != 0))
|
||||
if ((Video_Prepare != 0) &&
|
||||
(Video_BeginField != 0) &&
|
||||
(Video_EndField != 0) &&
|
||||
(Video_EnterLoop != 0) &&
|
||||
(Video_ExitLoop != 0) &&
|
||||
(Video_Screenshot != 0) &&
|
||||
(Video_AddMessage != 0) &&
|
||||
(Video_SetRendering != 0) &&
|
||||
(Video_AccessEFB != 0) &&
|
||||
(Video_SetRendering != 0) &&
|
||||
(Video_CommandProcessorRead16 != 0) &&
|
||||
(Video_CommandProcessorWrite16 != 0) &&
|
||||
(Video_PixelEngineRead16 != 0) &&
|
||||
(Video_PixelEngineWrite16 != 0) &&
|
||||
(Video_PixelEngineWrite32 != 0) &&
|
||||
(Video_GatherPipeBursted != 0) &&
|
||||
(Video_WaitForFrameFinish != 0))
|
||||
validVideo = true;
|
||||
}
|
||||
|
||||
|
@ -33,6 +33,12 @@ typedef void (__cdecl* TVideo_ExitLoop)();
|
||||
typedef void (__cdecl* TVideo_SetRendering)(bool bEnabled);
|
||||
typedef void (__cdecl* TVideo_AddMessage)(const char* pstr, unsigned int milliseconds);
|
||||
typedef u32 (__cdecl* TVideo_AccessEFB)(EFBAccessType, u32, u32);
|
||||
typedef void (__cdecl* TVideo_Read16)(u16& _rReturnValue, const u32 _Address);
|
||||
typedef void (__cdecl* TVideo_Write16)(const u16 _Data, const u32 _Address);
|
||||
typedef void (__cdecl* TVideo_Read32)(u32& _rReturnValue, const u32 _Address);
|
||||
typedef void (__cdecl* TVideo_Write32)(const u32 _Data, const u32 _Address);
|
||||
typedef void (__cdecl* TVideo_GatherPipeBursted)();
|
||||
typedef void (__cdecl* TVideo_WaitForFrameFinish)();
|
||||
|
||||
class PluginVideo : public CPlugin
|
||||
{
|
||||
@ -41,18 +47,25 @@ public:
|
||||
virtual ~PluginVideo();
|
||||
virtual bool IsValid() {return validVideo;};
|
||||
|
||||
TVideo_Prepare Video_Prepare;
|
||||
TVideo_SendFifoData Video_SendFifoData;
|
||||
TVideo_EnterLoop Video_EnterLoop;
|
||||
TVideo_ExitLoop Video_ExitLoop;
|
||||
TVideo_BeginField Video_BeginField;
|
||||
TVideo_EndField Video_EndField;
|
||||
TVideo_AccessEFB Video_AccessEFB;
|
||||
TVideo_Prepare Video_Prepare;
|
||||
TVideo_EnterLoop Video_EnterLoop;
|
||||
TVideo_ExitLoop Video_ExitLoop;
|
||||
TVideo_BeginField Video_BeginField;
|
||||
TVideo_EndField Video_EndField;
|
||||
TVideo_AccessEFB Video_AccessEFB;
|
||||
|
||||
TVideo_AddMessage Video_AddMessage;
|
||||
TVideo_Screenshot Video_Screenshot;
|
||||
TVideo_AddMessage Video_AddMessage;
|
||||
TVideo_Screenshot Video_Screenshot;
|
||||
|
||||
TVideo_SetRendering Video_SetRendering;
|
||||
TVideo_SetRendering Video_SetRendering;
|
||||
|
||||
TVideo_Read16 Video_CommandProcessorRead16;
|
||||
TVideo_Write16 Video_CommandProcessorWrite16;
|
||||
TVideo_Read16 Video_PixelEngineRead16;
|
||||
TVideo_Write16 Video_PixelEngineWrite16;
|
||||
TVideo_Write32 Video_PixelEngineWrite32;
|
||||
TVideo_GatherPipeBursted Video_GatherPipeBursted;
|
||||
TVideo_WaitForFrameFinish Video_WaitForFrameFinish;
|
||||
|
||||
private:
|
||||
bool validVideo;
|
||||
|
Reference in New Issue
Block a user