summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/vrender0.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/vrender0.h')
-rw-r--r--src/mame/video/vrender0.h43
1 files changed, 39 insertions, 4 deletions
diff --git a/src/mame/video/vrender0.h b/src/mame/video/vrender0.h
index 5fb05fef8ff..5669c74e810 100644
--- a/src/mame/video/vrender0.h
+++ b/src/mame/video/vrender0.h
@@ -10,7 +10,8 @@
TYPE DEFINITIONS
***************************************************************************/
-class vr0video_device : public device_t
+class vr0video_device : public device_t,
+ public device_video_interface
{
public:
template <typename T> vr0video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&cpu_tag)
@@ -21,7 +22,14 @@ public:
vr0video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- int vrender0_ProcessPacket(uint32_t PacketPtr, uint16_t *Dest, uint8_t *TEXTURE);
+ void set_areas(uint8_t *textureram, uint16_t *frameram);
+ void regs_map(address_map &map);
+ void execute_drawing();
+ uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ auto idleskip_cb() { return m_idleskip_cb.bind(); }
+
+ DECLARE_READ16_MEMBER(flip_count_r);
+ DECLARE_WRITE16_MEMBER(flip_count_w);
protected:
// device-level overrides
@@ -29,6 +37,11 @@ protected:
virtual void device_reset() override;
private:
+ int vrender0_ProcessPacket(uint32_t PacketPtr, uint16_t *Dest);
+
+ required_device<cpu_device> m_cpu;
+ devcb_write_line m_idleskip_cb;
+
struct RenderStateInfo
{
uint32_t Tx;
@@ -53,13 +66,35 @@ private:
uint32_t Height;
};
- // internal state
- required_device<cpu_device> m_cpu;
uint16_t m_InternalPalette[256];
uint32_t m_LastPalUpdate;
RenderStateInfo m_RenderState;
+
+ uint8_t *m_textureram;
+ uint16_t *m_frameram;
+
+ DECLARE_READ16_MEMBER( cmd_queue_front_r );
+ DECLARE_WRITE16_MEMBER( cmd_queue_front_w );
+
+ DECLARE_READ16_MEMBER( cmd_queue_rear_r );
+ uint16_t m_queue_rear, m_queue_front;
+
+ DECLARE_READ16_MEMBER( bank1_select_r );
+ DECLARE_WRITE16_MEMBER( bank1_select_w );
+ bool m_bank1_select;
+
+ DECLARE_READ16_MEMBER( display_bank_r );
+ uint8_t m_display_bank;
+
+ DECLARE_READ16_MEMBER( render_control_r );
+ DECLARE_WRITE16_MEMBER( render_control_w );
+ bool m_draw_select;
+ bool m_render_reset;
+ bool m_render_start;
+ uint8_t m_dither_mode;
+ uint8_t m_flip_count;
};
DECLARE_DEVICE_TYPE(VIDEO_VRENDER0, vr0video_device)