Browse code

make the SDL texture XRGB8888 (no alpha) and remove padding pixels from it

Sigrid Solveig Haflínudóttir authored on 05/01/2022 21:45:49
Showing 1 changed files
... ...
@@ -112,7 +112,7 @@ set_size(Uint16 width, Uint16 height, int is_resize)
112 112
 	gRect.h = uxn_screen.height;
113 113
 	if(gTexture != NULL) SDL_DestroyTexture(gTexture);
114 114
 	SDL_RenderSetLogicalSize(gRenderer, uxn_screen.width + PAD * 2, uxn_screen.height + PAD * 2);
115
-	gTexture = SDL_CreateTexture(gRenderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STATIC, uxn_screen.width + PAD * 2, uxn_screen.height + PAD * 2);
115
+	gTexture = SDL_CreateTexture(gRenderer, SDL_PIXELFORMAT_XRGB8888, SDL_TEXTUREACCESS_STATIC, uxn_screen.width, uxn_screen.height);
116 116
 	if(gTexture == NULL || SDL_SetTextureBlendMode(gTexture, SDL_BLENDMODE_NONE))
117 117
 		return error("gTexture", SDL_GetError());
118 118
 	if(SDL_UpdateTexture(gTexture, NULL, uxn_screen.pixels, sizeof(Uint32)) != 0)
... ...
@@ -128,10 +128,10 @@ redraw(Uxn *u)
128 128
 	if(devsystem->dat[0xe])
129 129
 		screen_debug(&uxn_screen, u->wst.dat, u->wst.ptr, u->rst.ptr, u->ram);
130 130
 	screen_redraw(&uxn_screen, uxn_screen.pixels);
131
-	if(SDL_UpdateTexture(gTexture, &gRect, uxn_screen.pixels, uxn_screen.width * sizeof(Uint32)) != 0)
131
+	if(SDL_UpdateTexture(gTexture, NULL, uxn_screen.pixels, uxn_screen.width * sizeof(Uint32)) != 0)
132 132
 		error("SDL_UpdateTexture", SDL_GetError());
133 133
 	SDL_RenderClear(gRenderer);
134
-	SDL_RenderCopy(gRenderer, gTexture, NULL, NULL);
134
+	SDL_RenderCopy(gRenderer, gTexture, NULL, &gRect);
135 135
 	SDL_RenderPresent(gRenderer);
136 136
 }
137 137
 
... ...
@@ -154,6 +154,7 @@ init(void)
154 154
 	gRenderer = SDL_CreateRenderer(gWindow, -1, 0);
155 155
 	if(gRenderer == NULL)
156 156
 		return error("sdl_renderer", SDL_GetError());
157
+	SDL_SetRenderDrawColor(gRenderer, 0x00, 0x00, 0x00, 0xff);
157 158
 	audio_id = SDL_OpenAudioDevice(NULL, 0, &as, NULL, 0);
158 159
 	if(!audio_id)
159 160
 		error("sdl_audio", SDL_GetError());