summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/screen.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/screen.h')
-rw-r--r--src/emu/screen.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/emu/screen.h b/src/emu/screen.h
index e9d87561c7c..9176bead392 100644
--- a/src/emu/screen.h
+++ b/src/emu/screen.h
@@ -213,8 +213,8 @@ public:
// information getters
render_container &container() const { assert(m_container != nullptr); return *m_container; }
bitmap_ind8 &priority() { return m_priority; }
- palette_device &palette() const { assert(m_palette.found()); return *m_palette; }
- bool has_palette() const { return m_palette.found(); }
+ device_palette_interface &palette() const { assert(m_palette != nullptr); return *m_palette; }
+ bool has_palette() const { return m_palette != nullptr; }
// dynamic configuration
void configure(int width, int height, const rectangle &visarea, attoseconds_t frame_period);
@@ -247,6 +247,7 @@ public:
// additional helpers
void register_vblank_callback(vblank_state_delegate vblank_callback);
void register_screen_bitmap(bitmap_t &bitmap);
+ void resolve_palette();
// internal to the video system
bool update_quads();
@@ -292,7 +293,8 @@ private:
screen_update_ind16_delegate m_screen_update_ind16; // screen update callback (16-bit palette)
screen_update_rgb32_delegate m_screen_update_rgb32; // screen update callback (32-bit RGB)
devcb_write_line m_screen_vblank; // screen vblank line callback
- optional_device<palette_device> m_palette; // our palette
+ device_palette_interface *m_palette; // our palette
+ const char * m_palette_tag; // configured tag for palette device
u32 m_video_attributes; // flags describing the video system
const char * m_svg_region; // the region in which the svg data is in
@@ -496,9 +498,9 @@ extern template class device_finder<screen_device, true>;
#define MCFG_SCREEN_VBLANK_CALLBACK(_devcb) \
devcb = &screen_device::static_set_screen_vblank(*device, DEVCB_##_devcb);
#define MCFG_SCREEN_PALETTE(_palette_tag) \
- screen_device::static_set_palette(*device, "^" _palette_tag);
+ screen_device::static_set_palette(*device, _palette_tag);
#define MCFG_SCREEN_NO_PALETTE \
- screen_device::static_set_palette(*device, finder_base::DUMMY_TAG);
+ screen_device::static_set_palette(*device, nullptr);
#define MCFG_SCREEN_VIDEO_ATTRIBUTES(_flags) \
screen_device::static_set_video_attributes(*device, _flags);
#define MCFG_SCREEN_COLOR(_color) \