diff options
-rw-r--r-- | minui/graphics.cpp | 4 | ||||
-rw-r--r-- | minui/graphics_drm.cpp | 4 | ||||
-rw-r--r-- | minui/include/minui/minui.h | 1 | ||||
-rw-r--r-- | minui/resources.cpp | 6 |
4 files changed, 11 insertions, 4 deletions
diff --git a/minui/graphics.cpp b/minui/graphics.cpp index 4d1f9b2d2..d34da5674 100644 --- a/minui/graphics.cpp +++ b/minui/graphics.cpp @@ -209,7 +209,7 @@ void gr_texticon(int x, int y, const GRSurface* icon) { void gr_color(unsigned char r, unsigned char g, unsigned char b, unsigned char a) { uint32_t r32 = r, g32 = g, b32 = b, a32 = a; - if (pixel_format == PixelFormat::ABGR || pixel_format == PixelFormat::BGRA) { + if (pixel_format == PixelFormat::ARGB || pixel_format == PixelFormat::BGRA) { gr_current = (a32 << 24) | (r32 << 16) | (g32 << 8) | b32; } else { gr_current = (a32 << 24) | (b32 << 16) | (g32 << 8) | r32; @@ -348,6 +348,8 @@ int gr_init() { pixel_format = PixelFormat::ABGR; } else if (format == "RGBX_8888") { pixel_format = PixelFormat::RGBX; + } else if (format == "ARGB_8888") { + pixel_format = PixelFormat::ARGB; } else if (format == "BGRA_8888") { pixel_format = PixelFormat::BGRA; } else { diff --git a/minui/graphics_drm.cpp b/minui/graphics_drm.cpp index 7b2eed15d..95759e382 100644 --- a/minui/graphics_drm.cpp +++ b/minui/graphics_drm.cpp @@ -62,6 +62,8 @@ static int drm_format_to_bpp(uint32_t format) { case DRM_FORMAT_ABGR8888: case DRM_FORMAT_BGRA8888: case DRM_FORMAT_RGBX8888: + case DRM_FORMAT_RGBA8888: + case DRM_FORMAT_ARGB8888: case DRM_FORMAT_BGRX8888: case DRM_FORMAT_XBGR8888: case DRM_FORMAT_XRGB8888: @@ -87,6 +89,8 @@ std::unique_ptr<GRSurfaceDrm> GRSurfaceDrm::Create(int drm_fd, int width, int he format = DRM_FORMAT_ARGB8888; } else if (pixel_format == PixelFormat::RGBX) { format = DRM_FORMAT_XBGR8888; + } else if (pixel_format == PixelFormat::ARGB) { + format = DRM_FORMAT_BGRA8888; } else { format = DRM_FORMAT_RGB565; } diff --git a/minui/include/minui/minui.h b/minui/include/minui/minui.h index 36bdcf103..163e41dc6 100644 --- a/minui/include/minui/minui.h +++ b/minui/include/minui/minui.h @@ -101,6 +101,7 @@ enum class PixelFormat : int { ABGR = 1, RGBX = 2, BGRA = 3, + ARGB = 4, }; // Initializes the graphics backend and loads font file. Returns 0 on success, or -1 on error. Note diff --git a/minui/resources.cpp b/minui/resources.cpp index 00d36d5fb..f635acd1a 100644 --- a/minui/resources.cpp +++ b/minui/resources.cpp @@ -199,7 +199,7 @@ int res_create_display_surface(const char* name, GRSurface** pSurface) { } PixelFormat pixel_format = gr_pixel_format(); - if (pixel_format == PixelFormat::ABGR || pixel_format == PixelFormat::BGRA) { + if (pixel_format == PixelFormat::ARGB || pixel_format == PixelFormat::BGRA) { png_set_bgr(png_ptr); } @@ -271,7 +271,7 @@ int res_create_multi_display_surface(const char* name, int* frames, int* fps, surface[i] = created_surface.release(); } - if (gr_pixel_format() == PixelFormat::ABGR || gr_pixel_format() == PixelFormat::BGRA) { + if (gr_pixel_format() == PixelFormat::ARGB || gr_pixel_format() == PixelFormat::BGRA) { png_set_bgr(png_ptr); } @@ -317,7 +317,7 @@ int res_create_alpha_surface(const char* name, GRSurface** pSurface) { } PixelFormat pixel_format = gr_pixel_format(); - if (pixel_format == PixelFormat::ABGR || pixel_format == PixelFormat::BGRA) { + if (pixel_format == PixelFormat::ARGB || pixel_format == PixelFormat::BGRA) { png_set_bgr(png_ptr); } |