rpcsx/rpcs3/Emu/GS/RSXThread.h
DH 5753edf6ef - Improved sc function binder.
- Improved GLGSRender.
2013-06-30 11:46:29 +03:00

75 lines
1.3 KiB
C++

#pragma once
#include "GCM.h"
class ExecRSXCMDdata
{
protected:
bool m_set_color_mask;
bool m_color_mask_r;
bool m_color_mask_g;
bool m_color_mask_b;
bool m_color_mask_a;
bool m_set_clip;
float m_clip_min;
float m_clip_max;
bool m_set_depth_func;
int m_depth_func;
bool m_set_alpha_test;
bool m_set_blend;
bool m_set_depth_bounds_test;
bool m_depth_test_enable;
bool m_set_viewport_horizontal;
bool m_set_viewport_vertical;
u16 m_viewport_x;
u16 m_viewport_y;
u16 m_viewport_w;
u16 m_viewport_h;
bool m_set_scissor_horizontal;
bool m_set_scissor_vertical;
u16 m_scissor_x;
u16 m_scissor_y;
u16 m_scissor_w;
u16 m_scissor_h;
public:
ExecRSXCMDdata()
{
Reset();
}
virtual void Reset()
{
m_set_color_mask = false;
m_set_alpha_test = false;
m_set_blend = false;
m_set_depth_bounds_test = false;
m_set_clip = false;
m_set_depth_func = false;
m_depth_test_enable = false;
m_set_viewport_horizontal = false;
m_set_viewport_vertical = false;
m_set_scissor_horizontal = false;
m_set_scissor_vertical = false;
}
virtual void ExecCMD()=0;
};
class RSXThread : public ThreadBase
{
Array<u32> call_stack;
CellGcmControl& m_ctrl;
u32 m_ioAddress;
protected:
RSXThread(CellGcmControl* ctrl, u32 ioAddress);
private:
virtual void Task();
virtual void OnExit();
};