Screen background
All checks were successful
Build Dusk / run-tests (push) Successful in 1m33s
Build Dusk / build-linux (push) Successful in 1m40s
Build Dusk / build-psp (push) Successful in 1m50s

This commit is contained in:
2026-02-03 13:37:00 -06:00
parent da3513f63d
commit 94e2cc6210
6 changed files with 29 additions and 3 deletions

View File

@@ -7,6 +7,8 @@ module('screen')
module('time')
camera = cameraCreate(CAMERA_PROJECTION_TYPE_ORTHOGRAPHIC)
text = "Hello World"
screenSetBackground(colorBlack())
function sceneDispose()
end
@@ -14,7 +16,6 @@ end
function sceneUpdate()
end
text = "Hello World"
function sceneRender()
cameraPushMatrix(camera)

View File

@@ -120,7 +120,7 @@ errorret_t displayUpdate(void) {
screenBind();
frameBufferClear(
FRAMEBUFFER_CLEAR_COLOR | FRAMEBUFFER_CLEAR_DEPTH,
COLOR_CORNFLOWER_BLUE
SCREEN.background
);
errorChain(sceneRender());

View File

@@ -15,6 +15,7 @@ screen_t SCREEN;
void screenInit() {
memoryZero(&SCREEN, sizeof(screen_t));
SCREEN.background = COLOR_CORNFLOWER_BLUE;
#if DISPLAY_SIZE_DYNAMIC == 1
SCREEN.mode = SCREEN_MODE_FIXED_VIEWPORT_HEIGHT;

View File

@@ -10,6 +10,7 @@
#include "display/framebuffer.h"
#include "display/camera/camera.h"
#include "display/mesh/quad.h"
#include "display/color.h"
#if DISPLAY_SIZE_DYNAMIC == 1
#ifndef DISPLAY_SCREEN_HEIGHT_DEFAULT
@@ -44,6 +45,7 @@ typedef struct {
int32_t width;
int32_t height;
float_t aspect;
color_t background;
#if DISPLAY_SIZE_DYNAMIC == 1
framebuffer_t framebuffer;

View File

@@ -14,6 +14,7 @@ void moduleScreen(scriptcontext_t *context) {
lua_register(context->luaState, "screenGetWidth", moduleScreenGetWidth);
lua_register(context->luaState, "screenGetHeight", moduleScreenGetHeight);
lua_register(context->luaState, "screenSetBackground", moduleScreenSetBackground);
}
int moduleScreenGetWidth(lua_State *L) {
@@ -26,4 +27,17 @@ int moduleScreenGetHeight(lua_State *L) {
assertNotNull(L, "Lua state is null");
lua_pushinteger(L, SCREEN.height);
return 1;
}
int moduleScreenSetBackground(lua_State *L) {
assertNotNull(L, "Lua state is null");
if(!lua_isuserdata(L, 1)) {
luaL_error(L, "Screen background color must be a color struct");
return 0;
}
color_t *color = (color_t*)luaL_checkudata(L, 1, "color_mt");
SCREEN.background = *color;
return 0;
}

View File

@@ -29,4 +29,12 @@ int moduleScreenGetWidth(lua_State *L);
* @param L The Lua state.
* @return Count of return values.
*/
int moduleScreenGetHeight(lua_State *L);
int moduleScreenGetHeight(lua_State *L);
/**
* Sets the screen background color.
*
* @param L The Lua state.
* @return Count of return values.
*/
int moduleScreenSetBackground(lua_State *L);