summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/video/hp1ll3.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/video/hp1ll3.h')
-rw-r--r--src/devices/video/hp1ll3.h48
1 files changed, 40 insertions, 8 deletions
diff --git a/src/devices/video/hp1ll3.h b/src/devices/video/hp1ll3.h
index b8c9b45e007..2360b190af6 100644
--- a/src/devices/video/hp1ll3.h
+++ b/src/devices/video/hp1ll3.h
@@ -43,16 +43,43 @@ protected:
virtual void device_reset() override;
private:
+ struct Point {
+ uint16_t x , y;
+ };
+ struct Rectangle {
+ Point origin;
+ Point size;
+ };
+
void command(int command);
- inline void point(int x, int y, int px);
+ uint16_t get_pix_addr(uint16_t x , uint16_t y) const;
+ inline void point(int x, int y, bool pix, const uint16_t masks[]);
void label(uint8_t chr, int width);
- void fill(int x, int y, int w, int h, int arg);
void line(int x_from, int y_from, int x_to, int y_to);
- void bitblt(int dstx, int dsty, uint16_t srcaddr, int width, int height, int op);
-
- uint16_t m_conf[12], m_input[2];
- int m_input_ptr, m_memory_ptr, m_conf_ptr;
+ void wr_video(uint16_t addr , uint16_t v);
+ uint16_t rd_video(uint16_t addr) const;
+ static void get_rop_masks(uint16_t rop , uint16_t masks[]);
+ static uint16_t apply_rop(uint16_t old_pix , uint16_t new_pix , uint16_t glob_mask , const uint16_t masks[]);
+ void rmw_rop(uint16_t addr , uint16_t new_pix , uint16_t glob_mask , const uint16_t masks[]);
+ void clip_coord(int size_1 , int& p1 , int origin_clip , int size_clip , int& origin_2 , int& size_2) const;
+ bool bitblt(uint16_t src_base_addr , unsigned src_width , unsigned src_height , Point src_p ,
+ const Rectangle& clip_rect , const Rectangle& dst_rect , uint16_t rop , bool use_m_org = true);
+ void rowbltpos(unsigned p1_pix , unsigned p2_pix , int width , const uint16_t masks[]);
+ void rowbltneg(unsigned p1_pix , unsigned p2_pix , int width , const uint16_t masks[]);
+ void fill(const Rectangle& fill_rect , uint16_t pattern_no);
+ uint16_t get_pattern_addr(uint16_t pattern_no) const;
+ void draw_cursor();
+ void draw_sprite();
+ void draw_cursor_sprite();
+ void set_pen_pos(Point p);
+ void set_sprite_pos(Point p);
+ Rectangle get_window() const;
+ Rectangle get_screen() const;
+ void apply_conf();
+
+ uint16_t m_conf[ 11 ] , m_input[2] , m_io_word;
+ int m_io_ptr, m_memory_ptr;
int m_command, m_horiz_pix_total, m_vert_pix_total;
uint16_t m_sad;
@@ -64,15 +91,20 @@ private:
bool m_enable_video, m_enable_cursor, m_enable_sprite;
uint16_t m_cursor_x, m_cursor_y, m_saved_x;
+ uint16_t m_cursor_pattern;
+ uint16_t m_cursor_offset;
uint16_t m_sprite_x, m_sprite_y;
+ uint16_t m_sprite_pattern;
struct {
- uint16_t width, height, org_x, org_y, width_w;
+ uint16_t width, height, org_x, org_y;
} m_window;
std::unique_ptr<uint16_t[]> m_videoram;
+ uint16_t m_ram_addr_mask;
+ uint16_t m_rw_win_x , m_rw_win_y;
bool m_busy;
- bitmap_ind16 m_bitmap, m_cursor, m_sprite;
+ bitmap_ind16 m_bitmap;
};