diff options
Diffstat (limited to 'src/mame/video/vrender0.h')
-rw-r--r-- | src/mame/video/vrender0.h | 43 |
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) |