mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-06-24 22:04:19 +08:00
Merge pull request #148 from xTibor/sdl-fix-alpha
sdl: Fix alpha handling
This commit is contained in:
commit
90ed0920d6
@ -15,48 +15,6 @@ diff -rupNw source-original/libnsfb/Makefile source/libnsfb/Makefile
|
||||
|
||||
# surfaces not detectable via pkg-config
|
||||
NSFB_ABLE_AVAILABLE := no
|
||||
diff -rupNw source-original/libnsfb/src/plot/32bpp-xbgr8888.c source/libnsfb/src/plot/32bpp-xbgr8888.c
|
||||
--- source-original/libnsfb/src/plot/32bpp-xbgr8888.c 2017-10-16 12:09:35.000000000 +0200
|
||||
+++ source/libnsfb/src/plot/32bpp-xbgr8888.c 2018-03-04 20:43:18.188956997 +0100
|
||||
@@ -52,7 +52,7 @@ static inline nsfb_colour_t pixel_to_col
|
||||
*/
|
||||
static inline uint32_t colour_to_pixel(UNUSED nsfb_t *nsfb, nsfb_colour_t c)
|
||||
{
|
||||
- return ((c & 0xFF) << 24) | ((c & 0xFF00) << 8) | ((c & 0xFF0000) >> 8);
|
||||
+ return ((c & 0xFF) << 24) | ((c & 0xFF00) << 8) | ((c & 0xFF0000) >> 8) | 0xFF;
|
||||
}
|
||||
|
||||
#else
|
||||
@@ -79,7 +79,7 @@ static inline nsfb_colour_t pixel_to_col
|
||||
*/
|
||||
static inline uint32_t colour_to_pixel(UNUSED nsfb_t *nsfb, nsfb_colour_t c)
|
||||
{
|
||||
- return c;
|
||||
+ return c | 0xFF000000;
|
||||
}
|
||||
|
||||
#endif
|
||||
diff -rupNw source-original/libnsfb/src/plot/32bpp-xrgb8888.c source/libnsfb/src/plot/32bpp-xrgb8888.c
|
||||
--- source-original/libnsfb/src/plot/32bpp-xrgb8888.c 2017-10-16 12:09:35.000000000 +0200
|
||||
+++ source/libnsfb/src/plot/32bpp-xrgb8888.c 2018-03-04 20:43:18.188956997 +0100
|
||||
@@ -52,7 +52,7 @@ static inline nsfb_colour_t pixel_to_col
|
||||
*/
|
||||
static inline uint32_t colour_to_pixel(UNUSED nsfb_t *nsfb, nsfb_colour_t c)
|
||||
{
|
||||
- return (c << 8);
|
||||
+ return (c << 8) | 0xff;
|
||||
}
|
||||
|
||||
#else
|
||||
@@ -81,7 +81,7 @@ static inline nsfb_colour_t pixel_to_col
|
||||
*/
|
||||
static inline uint32_t colour_to_pixel(UNUSED nsfb_t *nsfb, nsfb_colour_t c)
|
||||
{
|
||||
- return ((c & 0xff0000) >> 16) | (c & 0xff00) | ((c & 0xff) << 16);
|
||||
+ return 0xff000000 | ((c & 0xff0000) >> 16) | (c & 0xff00) | ((c & 0xff) << 16);
|
||||
}
|
||||
|
||||
#endif
|
||||
diff -rupNw source-original/libnsfb/src/plot.h source/libnsfb/src/plot.h
|
||||
--- source-original/libnsfb/src/plot.h 2017-10-16 12:09:35.000000000 +0200
|
||||
+++ source/libnsfb/src/plot.h 2018-03-04 20:43:18.188956997 +0100
|
||||
|
||||
@ -43,15 +43,3 @@ diff -burpN source-original/src/SDL/i_video.c source/src/SDL/i_video.c
|
||||
}
|
||||
|
||||
//
|
||||
diff -burpN source-original/src/v_video.c source/src/v_video.c
|
||||
--- source-original/src/v_video.c 2008-10-11 14:10:41.000000000 +0200
|
||||
+++ source/src/v_video.c 2018-04-22 23:43:10.939034965 +0200
|
||||
@@ -558,7 +558,7 @@ void V_UpdateTrueColorPalette(video_mode
|
||||
ng = (int)(g*t+roundUpG);
|
||||
nb = (int)(b*t+roundUpB);
|
||||
Palettes32[((p*256+i)*VID_NUMCOLORWEIGHTS)+w] = (
|
||||
- (nr<<16) | (ng<<8) | nb
|
||||
+ (255<<24) | (nr<<16) | (ng<<8) | nb
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
diff -rupNw source-original/build-scripts/config.sub source/build-scripts/config.sub
|
||||
--- source-original/build-scripts/config.sub 2012-01-19 07:30:05.000000000 +0100
|
||||
+++ source/build-scripts/config.sub 2018-04-23 17:03:35.533588029 +0200
|
||||
+++ source/build-scripts/config.sub 2018-05-01 17:31:52.766229515 +0200
|
||||
@@ -1276,7 +1276,7 @@ case $os in
|
||||
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
|
||||
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
|
||||
@ -12,11 +12,11 @@ diff -rupNw source-original/build-scripts/config.sub source/build-scripts/config
|
||||
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
||||
diff -rupNw source-original/configure.in source/configure.in
|
||||
--- source-original/configure.in 2012-01-19 07:30:05.000000000 +0100
|
||||
+++ source/configure.in 2018-04-23 17:03:35.533588029 +0200
|
||||
+++ source/configure.in 2018-05-01 17:31:52.770229654 +0200
|
||||
@@ -1646,6 +1646,20 @@ AC_HELP_STRING([--enable-video-dummy], [
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
+dnl Set up the Orbital video driver.
|
||||
+CheckOrbitalVideo()
|
||||
+{
|
||||
@ -34,7 +34,7 @@ diff -rupNw source-original/configure.in source/configure.in
|
||||
dnl Check to see if OpenGL support is desired
|
||||
AC_ARG_ENABLE(video-opengl,
|
||||
AC_HELP_STRING([--enable-video-opengl], [include OpenGL context creation [[default=yes]]]),
|
||||
@@ -2325,10 +2338,11 @@ case "$host" in
|
||||
@@ -2325,10 +2339,11 @@ case "$host" in
|
||||
have_timers=yes
|
||||
fi
|
||||
;;
|
||||
@ -47,7 +47,7 @@ diff -rupNw source-original/configure.in source/configure.in
|
||||
*-*-kfreebsd*-gnu) ARCH=kfreebsd-gnu ;;
|
||||
*-*-knetbsd*-gnu) ARCH=knetbsd-gnu ;;
|
||||
*-*-kopenbsd*-gnu) ARCH=kopenbsd-gnu ;;
|
||||
@@ -2347,6 +2361,7 @@ case "$host" in
|
||||
@@ -2347,6 +2362,7 @@ case "$host" in
|
||||
esac
|
||||
CheckVisibilityHidden
|
||||
CheckDummyVideo
|
||||
@ -57,7 +57,7 @@ diff -rupNw source-original/configure.in source/configure.in
|
||||
CheckDLOPEN
|
||||
diff -rupNw source-original/include/SDL_config.h.in source/include/SDL_config.h.in
|
||||
--- source-original/include/SDL_config.h.in 2012-01-19 07:30:05.000000000 +0100
|
||||
+++ source/include/SDL_config.h.in 2018-04-23 17:03:35.533588029 +0200
|
||||
+++ source/include/SDL_config.h.in 2018-05-01 17:31:52.770229654 +0200
|
||||
@@ -268,6 +268,7 @@
|
||||
#undef SDL_VIDEO_DRIVER_GGI
|
||||
#undef SDL_VIDEO_DRIVER_IPOD
|
||||
@ -68,7 +68,7 @@ diff -rupNw source-original/include/SDL_config.h.in source/include/SDL_config.h.
|
||||
#undef SDL_VIDEO_DRIVER_PICOGUI
|
||||
diff -rupNw source-original/src/video/orbital/SDL_orbitalevents.c source/src/video/orbital/SDL_orbitalevents.c
|
||||
--- source-original/src/video/orbital/SDL_orbitalevents.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ source/src/video/orbital/SDL_orbitalevents.c 2018-04-25 01:53:33.077960454 +0200
|
||||
+++ source/src/video/orbital/SDL_orbitalevents.c 2018-05-01 17:31:52.770229654 +0200
|
||||
@@ -0,0 +1,198 @@
|
||||
+/*
|
||||
+ SDL - Simple DirectMedia Layer
|
||||
@ -270,7 +270,7 @@ diff -rupNw source-original/src/video/orbital/SDL_orbitalevents.c source/src/vid
|
||||
+/* end of SDL_orbitalevents.c ... */
|
||||
diff -rupNw source-original/src/video/orbital/SDL_orbitalevents_c.h source/src/video/orbital/SDL_orbitalevents_c.h
|
||||
--- source-original/src/video/orbital/SDL_orbitalevents_c.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ source/src/video/orbital/SDL_orbitalevents_c.h 2018-04-23 17:03:35.537588257 +0200
|
||||
+++ source/src/video/orbital/SDL_orbitalevents_c.h 2018-05-01 17:31:52.770229654 +0200
|
||||
@@ -0,0 +1,32 @@
|
||||
+/*
|
||||
+ SDL - Simple DirectMedia Layer
|
||||
@ -306,7 +306,7 @@ diff -rupNw source-original/src/video/orbital/SDL_orbitalevents_c.h source/src/v
|
||||
+/* end of SDL_orbitalevents_c.h ... */
|
||||
diff -rupNw source-original/src/video/orbital/SDL_orbitalmouse.c source/src/video/orbital/SDL_orbitalmouse.c
|
||||
--- source-original/src/video/orbital/SDL_orbitalmouse.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ source/src/video/orbital/SDL_orbitalmouse.c 2018-04-23 17:03:35.537588257 +0200
|
||||
+++ source/src/video/orbital/SDL_orbitalmouse.c 2018-05-01 17:31:52.770229654 +0200
|
||||
@@ -0,0 +1,33 @@
|
||||
+/*
|
||||
+ SDL - Simple DirectMedia Layer
|
||||
@ -343,7 +343,7 @@ diff -rupNw source-original/src/video/orbital/SDL_orbitalmouse.c source/src/vide
|
||||
+};
|
||||
diff -rupNw source-original/src/video/orbital/SDL_orbitalmouse_c.h source/src/video/orbital/SDL_orbitalmouse_c.h
|
||||
--- source-original/src/video/orbital/SDL_orbitalmouse_c.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ source/src/video/orbital/SDL_orbitalmouse_c.h 2018-04-23 17:03:35.537588257 +0200
|
||||
+++ source/src/video/orbital/SDL_orbitalmouse_c.h 2018-05-01 17:31:52.770229654 +0200
|
||||
@@ -0,0 +1,26 @@
|
||||
+/*
|
||||
+ SDL - Simple DirectMedia Layer
|
||||
@ -373,8 +373,8 @@ diff -rupNw source-original/src/video/orbital/SDL_orbitalmouse_c.h source/src/vi
|
||||
+/* Functions to be exported */
|
||||
diff -rupNw source-original/src/video/orbital/SDL_orbitalvideo.c source/src/video/orbital/SDL_orbitalvideo.c
|
||||
--- source-original/src/video/orbital/SDL_orbitalvideo.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ source/src/video/orbital/SDL_orbitalvideo.c 2018-04-25 02:29:56.554079034 +0200
|
||||
@@ -0,0 +1,248 @@
|
||||
+++ source/src/video/orbital/SDL_orbitalvideo.c 2018-05-01 17:32:53.000320923 +0200
|
||||
@@ -0,0 +1,250 @@
|
||||
+/*
|
||||
+ SDL - Simple DirectMedia Layer
|
||||
+ Copyright (C) 1997-2012 Sam Lantinga
|
||||
@ -554,7 +554,7 @@ diff -rupNw source-original/src/video/orbital/SDL_orbitalvideo.c source/src/vide
|
||||
+ fprintf(stderr, "Setting mode %dx%d@%d\n", width, height, bpp);
|
||||
+
|
||||
+ /* Allocate the new pixel format for the screen */
|
||||
+ if ( ! SDL_ReallocFormat(current, bpp, 0, 0, 0, 0) ) {
|
||||
+ if ( ! SDL_ReallocFormat(current, bpp, 0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000) ) {
|
||||
+ orb_window_destroy(this->hidden->window);
|
||||
+ this->hidden->window = NULL;
|
||||
+
|
||||
@ -602,8 +602,10 @@ diff -rupNw source-original/src/video/orbital/SDL_orbitalvideo.c source/src/vide
|
||||
+
|
||||
+static void ORBITAL_UpdateRects(_THIS, int numrects, SDL_Rect *rects)
|
||||
+{
|
||||
+ if (this->hidden->window)
|
||||
+ if (this->hidden->window) {
|
||||
+ SDL_SetAlphaChannel(this->screen, SDL_ALPHA_OPAQUE);
|
||||
+ orb_window_sync(this->hidden->window);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+int ORBITAL_SetColors(_THIS, int firstcolor, int ncolors, SDL_Color *colors)
|
||||
@ -625,7 +627,7 @@ diff -rupNw source-original/src/video/orbital/SDL_orbitalvideo.c source/src/vide
|
||||
+}
|
||||
diff -rupNw source-original/src/video/orbital/SDL_orbitalvideo.h source/src/video/orbital/SDL_orbitalvideo.h
|
||||
--- source-original/src/video/orbital/SDL_orbitalvideo.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ source/src/video/orbital/SDL_orbitalvideo.h 2018-04-23 17:04:31.224570535 +0200
|
||||
+++ source/src/video/orbital/SDL_orbitalvideo.h 2018-05-01 17:31:52.770229654 +0200
|
||||
@@ -0,0 +1,39 @@
|
||||
+/*
|
||||
+ SDL - Simple DirectMedia Layer
|
||||
@ -668,20 +670,20 @@ diff -rupNw source-original/src/video/orbital/SDL_orbitalvideo.h source/src/vide
|
||||
+#endif /* _SDL_orbitalvideo_h */
|
||||
diff -rupNw source-original/src/video/SDL_gamma.c source/src/video/SDL_gamma.c
|
||||
--- source-original/src/video/SDL_gamma.c 2012-01-19 07:30:06.000000000 +0100
|
||||
+++ source/src/video/SDL_gamma.c 2018-04-23 17:03:35.537588257 +0200
|
||||
+++ source/src/video/SDL_gamma.c 2018-05-01 17:31:52.770229654 +0200
|
||||
@@ -35,6 +35,9 @@
|
||||
#define log(x) __ieee754_log(x)
|
||||
#endif
|
||||
|
||||
|
||||
+#include "e_log.h"
|
||||
+#define log(x) __ieee754_log(x)
|
||||
+
|
||||
#include "SDL_sysvideo.h"
|
||||
|
||||
|
||||
|
||||
|
||||
diff -rupNw source-original/src/video/SDL_sysvideo.h source/src/video/SDL_sysvideo.h
|
||||
--- source-original/src/video/SDL_sysvideo.h 2012-01-19 07:30:06.000000000 +0100
|
||||
+++ source/src/video/SDL_sysvideo.h 2018-04-23 17:03:35.537588257 +0200
|
||||
+++ source/src/video/SDL_sysvideo.h 2018-05-01 17:31:52.770229654 +0200
|
||||
@@ -410,6 +410,9 @@ extern VideoBootStrap AALIB_bootstrap;
|
||||
#if SDL_VIDEO_DRIVER_CACA
|
||||
extern VideoBootStrap CACA_bootstrap;
|
||||
@ -694,7 +696,7 @@ diff -rupNw source-original/src/video/SDL_sysvideo.h source/src/video/SDL_sysvid
|
||||
#endif
|
||||
diff -rupNw source-original/src/video/SDL_video.c source/src/video/SDL_video.c
|
||||
--- source-original/src/video/SDL_video.c 2012-01-19 07:30:06.000000000 +0100
|
||||
+++ source/src/video/SDL_video.c 2018-04-23 17:03:35.541588484 +0200
|
||||
+++ source/src/video/SDL_video.c 2018-05-01 17:31:52.774229792 +0200
|
||||
@@ -126,6 +126,9 @@ static VideoBootStrap *bootstrap[] = {
|
||||
#if SDL_VIDEO_DRIVER_CACA
|
||||
&CACA_bootstrap,
|
||||
@ -712,6 +714,6 @@ diff -rupNw source-original/src/video/SDL_video.c source/src/video/SDL_video.c
|
||||
- SDL_ClearSurface(mode);
|
||||
+ // Causes blinking under Orbital
|
||||
+ //SDL_ClearSurface(mode);
|
||||
|
||||
|
||||
/* Now adjust the offsets to match the desired mode */
|
||||
video->offset_x = (mode->w-width)/2;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user