From 598957ce034b18a3297356299fb39112a6c69578 Mon Sep 17 00:00:00 2001 From: AJR Date: Thu, 21 Sep 2023 18:52:58 -0400 Subject: [PATCH] ioport.cpp, rendfont.cpp: Use multibyte.h functions --- src/emu/ioport.cpp | 20 ++------ src/emu/rendfont.cpp | 117 ++++++++++--------------------------------- 2 files changed, 30 insertions(+), 107 deletions(-) diff --git a/src/emu/ioport.cpp b/src/emu/ioport.cpp index 4589587d4a3..72c3de2dde5 100644 --- a/src/emu/ioport.cpp +++ b/src/emu/ioport.cpp @@ -23,6 +23,7 @@ #include "util/corestr.h" #include "util/ioprocsfilter.h" #include "util/language.h" +#include "util/multibyte.h" #include "util/unicode.h" #include "util/xmlfile.h" @@ -305,15 +306,7 @@ public: } u64 get_basetime() const { - return - (u64(m_data[OFFS_BASETIME + 0]) << (0 * 8)) | - (u64(m_data[OFFS_BASETIME + 1]) << (1 * 8)) | - (u64(m_data[OFFS_BASETIME + 2]) << (2 * 8)) | - (u64(m_data[OFFS_BASETIME + 3]) << (3 * 8)) | - (u64(m_data[OFFS_BASETIME + 4]) << (4 * 8)) | - (u64(m_data[OFFS_BASETIME + 5]) << (5 * 8)) | - (u64(m_data[OFFS_BASETIME + 6]) << (6 * 8)) | - (u64(m_data[OFFS_BASETIME + 7]) << (7 * 8)); + return get_u64le(m_data + OFFS_BASETIME); } unsigned get_majversion() const { @@ -338,14 +331,7 @@ public: } void set_basetime(u64 time) { - m_data[OFFS_BASETIME + 0] = u8((time >> (0 * 8)) & 0x00ff); - m_data[OFFS_BASETIME + 1] = u8((time >> (1 * 8)) & 0x00ff); - m_data[OFFS_BASETIME + 2] = u8((time >> (2 * 8)) & 0x00ff); - m_data[OFFS_BASETIME + 3] = u8((time >> (3 * 8)) & 0x00ff); - m_data[OFFS_BASETIME + 4] = u8((time >> (4 * 8)) & 0x00ff); - m_data[OFFS_BASETIME + 5] = u8((time >> (5 * 8)) & 0x00ff); - m_data[OFFS_BASETIME + 6] = u8((time >> (6 * 8)) & 0x00ff); - m_data[OFFS_BASETIME + 7] = u8((time >> (7 * 8)) & 0x00ff); + put_u64le(m_data + OFFS_BASETIME, time); } void set_version() { diff --git a/src/emu/rendfont.cpp b/src/emu/rendfont.cpp index 998e825b61d..1d4edf2d357 100644 --- a/src/emu/rendfont.cpp +++ b/src/emu/rendfont.cpp @@ -16,6 +16,7 @@ #include "corestr.h" #include "coreutil.h" +#include "multibyte.h" #include "path.h" #include "osdepend.h" @@ -150,51 +151,27 @@ public: } u64 get_original_length() const { - return - (u64(m_data[OFFS_ORIGLENGTH + 0]) << (7 * 8)) | - (u64(m_data[OFFS_ORIGLENGTH + 1]) << (6 * 8)) | - (u64(m_data[OFFS_ORIGLENGTH + 2]) << (5 * 8)) | - (u64(m_data[OFFS_ORIGLENGTH + 3]) << (4 * 8)) | - (u64(m_data[OFFS_ORIGLENGTH + 4]) << (3 * 8)) | - (u64(m_data[OFFS_ORIGLENGTH + 5]) << (2 * 8)) | - (u64(m_data[OFFS_ORIGLENGTH + 6]) << (1 * 8)) | - (u64(m_data[OFFS_ORIGLENGTH + 7]) << (0 * 8)); + return get_u64be(m_data + OFFS_ORIGLENGTH); } u32 get_original_hash() const { - return - (u32(m_data[OFFS_ORIGHASH + 0]) << (3 * 8)) | - (u32(m_data[OFFS_ORIGHASH + 1]) << (2 * 8)) | - (u32(m_data[OFFS_ORIGHASH + 2]) << (1 * 8)) | - (u32(m_data[OFFS_ORIGHASH + 3]) << (0 * 8)); + return get_u32be(m_data + OFFS_ORIGHASH); } u32 get_glyph_count() const { - return - (u32(m_data[OFFS_GLYPHCOUNT + 0]) << (3 * 8)) | - (u32(m_data[OFFS_GLYPHCOUNT + 1]) << (2 * 8)) | - (u32(m_data[OFFS_GLYPHCOUNT + 2]) << (1 * 8)) | - (u32(m_data[OFFS_GLYPHCOUNT + 3]) << (0 * 8)); + return get_u32be(m_data + OFFS_GLYPHCOUNT); } u16 get_height() const { - return - (u16(m_data[OFFS_HEIGHT + 0]) << (1 * 8)) | - (u16(m_data[OFFS_HEIGHT + 1]) << (0 * 8)); + return get_u16be(m_data + OFFS_HEIGHT); } s16 get_y_offset() const { - return - (u16(m_data[OFFS_YOFFSET + 0]) << (1 * 8)) | - (u16(m_data[OFFS_YOFFSET + 1]) << (0 * 8)); + return get_u16be(m_data + OFFS_YOFFSET); } s32 get_default_character() const { - return - (u32(m_data[OFFS_DEFCHAR + 0]) << (3 * 8)) | - (u32(m_data[OFFS_DEFCHAR + 1]) << (2 * 8)) | - (u32(m_data[OFFS_DEFCHAR + 2]) << (1 * 8)) | - (u32(m_data[OFFS_DEFCHAR + 3]) << (0 * 8)); + return get_u32be(m_data + OFFS_DEFCHAR); } void set_magic() @@ -208,45 +185,27 @@ public: } void set_original_length(u64 value) { - m_data[OFFS_ORIGLENGTH + 0] = u8((value >> (7 * 8)) & 0x00ff); - m_data[OFFS_ORIGLENGTH + 1] = u8((value >> (6 * 8)) & 0x00ff); - m_data[OFFS_ORIGLENGTH + 2] = u8((value >> (5 * 8)) & 0x00ff); - m_data[OFFS_ORIGLENGTH + 3] = u8((value >> (4 * 8)) & 0x00ff); - m_data[OFFS_ORIGLENGTH + 4] = u8((value >> (3 * 8)) & 0x00ff); - m_data[OFFS_ORIGLENGTH + 5] = u8((value >> (2 * 8)) & 0x00ff); - m_data[OFFS_ORIGLENGTH + 6] = u8((value >> (1 * 8)) & 0x00ff); - m_data[OFFS_ORIGLENGTH + 7] = u8((value >> (0 * 8)) & 0x00ff); + put_u64be(m_data + OFFS_ORIGLENGTH, value); } void set_original_hash(u32 value) { - m_data[OFFS_ORIGHASH + 0] = u8((value >> (3 * 8)) & 0x00ff); - m_data[OFFS_ORIGHASH + 1] = u8((value >> (2 * 8)) & 0x00ff); - m_data[OFFS_ORIGHASH + 2] = u8((value >> (1 * 8)) & 0x00ff); - m_data[OFFS_ORIGHASH + 3] = u8((value >> (0 * 8)) & 0x00ff); + put_u32be(m_data + OFFS_ORIGHASH, value); } void set_glyph_count(u32 value) { - m_data[OFFS_GLYPHCOUNT + 0] = u8((value >> (3 * 8)) & 0x00ff); - m_data[OFFS_GLYPHCOUNT + 1] = u8((value >> (2 * 8)) & 0x00ff); - m_data[OFFS_GLYPHCOUNT + 2] = u8((value >> (1 * 8)) & 0x00ff); - m_data[OFFS_GLYPHCOUNT + 3] = u8((value >> (0 * 8)) & 0x00ff); + put_u32be(m_data + OFFS_GLYPHCOUNT, value); } void set_height(u16 value) { - m_data[OFFS_HEIGHT + 0] = u8((value >> (1 * 8)) & 0x00ff); - m_data[OFFS_HEIGHT + 1] = u8((value >> (0 * 8)) & 0x00ff); + put_u16be(m_data + OFFS_HEIGHT, value); } void set_y_offset(s16 value) { - m_data[OFFS_YOFFSET + 0] = u8((value >> (1 * 8)) & 0x00ff); - m_data[OFFS_YOFFSET + 1] = u8((value >> (0 * 8)) & 0x00ff); + put_u16be(m_data + OFFS_YOFFSET, value); } void set_default_character(s32 value) { - m_data[OFFS_DEFCHAR + 0] = u8((value >> (3 * 8)) & 0x00ff); - m_data[OFFS_DEFCHAR + 1] = u8((value >> (2 * 8)) & 0x00ff); - m_data[OFFS_DEFCHAR + 2] = u8((value >> (1 * 8)) & 0x00ff); - m_data[OFFS_DEFCHAR + 3] = u8((value >> (0 * 8)) & 0x00ff); + put_u32be(m_data + OFFS_DEFCHAR, value); } private: @@ -286,74 +245,52 @@ public: u32 get_encoding() const { - return - (u32(m_ptr[OFFS_ENCODING + 0]) << (3 * 8)) | - (u32(m_ptr[OFFS_ENCODING + 1]) << (2 * 8)) | - (u32(m_ptr[OFFS_ENCODING + 2]) << (1 * 8)) | - (u32(m_ptr[OFFS_ENCODING + 3]) << (0 * 8)); + return get_u32be(m_ptr + OFFS_ENCODING); } u16 get_x_advance() const { - return - (u16(m_ptr[OFFS_XADVANCE + 0]) << (1 * 8)) | - (u16(m_ptr[OFFS_XADVANCE + 1]) << (0 * 8)); + return get_u16be(m_ptr + OFFS_XADVANCE); } s16 get_bb_x_offset() const { - return - (u16(m_ptr[OFFS_BBXOFFSET + 0]) << (1 * 8)) | - (u16(m_ptr[OFFS_BBXOFFSET + 1]) << (0 * 8)); + return get_u16be(m_ptr + OFFS_BBXOFFSET); } s16 get_bb_y_offset() const { - return - (u16(m_ptr[OFFS_BBYOFFSET + 0]) << (1 * 8)) | - (u16(m_ptr[OFFS_BBYOFFSET + 1]) << (0 * 8)); + return get_u16be(m_ptr + OFFS_BBYOFFSET); } u16 get_bb_width() const { - return - (u16(m_ptr[OFFS_BBWIDTH + 0]) << (1 * 8)) | - (u16(m_ptr[OFFS_BBWIDTH + 1]) << (0 * 8)); + return get_u16be(m_ptr + OFFS_BBWIDTH); } u16 get_bb_height() const { - return - (u16(m_ptr[OFFS_BBHEIGHT + 0]) << (1 * 8)) | - (u16(m_ptr[OFFS_BBHEIGHT + 1]) << (0 * 8)); + return get_u16be(m_ptr + OFFS_BBHEIGHT); } void set_encoding(u32 value) { - m_ptr[OFFS_ENCODING + 0] = u8((value >> (3 * 8)) & 0x00ff); - m_ptr[OFFS_ENCODING + 1] = u8((value >> (2 * 8)) & 0x00ff); - m_ptr[OFFS_ENCODING + 2] = u8((value >> (1 * 8)) & 0x00ff); - m_ptr[OFFS_ENCODING + 3] = u8((value >> (0 * 8)) & 0x00ff); + put_u32be(m_ptr + OFFS_ENCODING, value); } void set_x_advance(u16 value) { - m_ptr[OFFS_XADVANCE + 0] = u8((value >> (1 * 8)) & 0x00ff); - m_ptr[OFFS_XADVANCE + 1] = u8((value >> (0 * 8)) & 0x00ff); + put_u16be(m_ptr + OFFS_XADVANCE, value); } void set_bb_x_offset(s16 value) { - m_ptr[OFFS_BBXOFFSET + 0] = u8((value >> (1 * 8)) & 0x00ff); - m_ptr[OFFS_BBXOFFSET + 1] = u8((value >> (0 * 8)) & 0x00ff); + put_u16be(m_ptr + OFFS_BBXOFFSET, value); } void set_bb_y_offset(s16 value) { - m_ptr[OFFS_BBYOFFSET + 0] = u8((value >> (1 * 8)) & 0x00ff); - m_ptr[OFFS_BBYOFFSET + 1] = u8((value >> (0 * 8)) & 0x00ff); + put_u16be(m_ptr + OFFS_BBYOFFSET, value); } void set_bb_width(u16 value) { - m_ptr[OFFS_BBWIDTH + 0] = u8((value >> (1 * 8)) & 0x00ff); - m_ptr[OFFS_BBWIDTH + 1] = u8((value >> (0 * 8)) & 0x00ff); + put_u16be(m_ptr + OFFS_BBWIDTH, value); } void set_bb_height(u16 value) { - m_ptr[OFFS_BBHEIGHT + 0] = u8((value >> (1 * 8)) & 0x00ff); - m_ptr[OFFS_BBHEIGHT + 1] = u8((value >> (0 * 8)) & 0x00ff); + put_u16be(m_ptr + OFFS_BBHEIGHT, value); } bdc_table_entry &operator=(bdc_table_entry const &that) = default; @@ -673,7 +610,7 @@ void render_font::char_expand(char32_t chnum, glyph &gl) if (accumbit == 7) accum = *ptr++; if (dest != nullptr) - *dest++ = (accum & (1 << accumbit)) ? fgcol : bgcol; + *dest++ = BIT(accum, accumbit) ? fgcol : bgcol; accumbit = (accumbit - 1) & 7; } } @@ -769,7 +706,7 @@ void render_font::char_expand(char32_t chnum, glyph &gl) if (accumbit == 7) accum = *ptr++; if (dest != nullptr) - *dest++ = (accum & (1 << accumbit)) ? fgcol : bgcol; + *dest++ = BIT(accum, accumbit) ? fgcol : bgcol; accumbit = (accumbit - 1) & 7; } }