Built basic UI Grid.

This commit is contained in:
2021-09-07 09:07:53 -07:00
parent 6c10429dfb
commit 6c3bf3eeb0
13 changed files with 315 additions and 49 deletions

View File

@ -7,50 +7,75 @@
#include "sandboxscene.h"
void renderTest(renderlist_t *list, renderpass_t *pass, engine_t *engine, int32_t i) {
sandboxscene_t *scene;
scene = (sandboxscene_t *)list->user;
grid_t grid;
shaderUsePosition(pass->shader, 0, 0, 0, engine->time.current, engine->time.current, 0);
shaderUseTexture(pass->shader, &scene->texture);
primitiveDraw(&scene->cube, 0, -1);
void gridTest(
void *user, int32_t i,
float screenWidth, float screenHeight,
float x, float y,
float width, float height
) {
sandboxscene_t *game = (sandboxscene_t *)user;
game->items[i].x = x;
game->items[i].y = y;
game->items[i].width = width;
game->items[i].height = height;
}
bool sandboxSceneInit(sandboxscene_t *game) {
int32_t passIndex;
renderpass_t *pass;
gridInit(&grid);
grid.user = (void *)game;
gridAddBreakpoint(&grid, 800, 2, 2, 8.0f, 8.0f);
gridAddBreakpoint(&grid, -1, 6, 6, 16.0f, 16.0f);
gridchild_t *child = gridAddChild(&grid);
child->onResize = &gridTest;
// Load assets
assetTextureLoad(&game->texture, "test_texture.png");
assetShaderLoad(&game->shader, "shaders/textured.vert", "shaders/textured.frag");
cubeInit(&game->cube, 1.0f, 1.0f, 1.0f);
// Initialize list
renderListInit(&game->list, 1, 400, 400);
game->list.user = game;
// Set up the pass
passIndex = renderPassAdd(&game->list);
pass = renderListGetPass(&game->list, passIndex);
pass->shader = &game->shader;
assetShaderLoad(&game->shader,
"shaders/textured.vert", "shaders/textured.frag"
);
quadInit(&game->primitive, 0,
0,0,0,0,
1,1,1,1
);
return true;
}
void sandboxSceneUpdate(sandboxscene_t *game, engine_t *engine) {
dynarray_t items;
renderitem_t *item;
dynArrayInit(&items, sizeof(renderitem_t), 1);
item = (renderitem_t *)dynArrayGet(&items, dynArrayAdd(&items));
item->onRender= &renderTest;
cameraLookAt(&game->camera,
0, 0, 10,
0, 0, 0
);
cameraLookAt(&game->camera, 3,3,3, 0,0,0);
cameraPerspective(&game->camera, 75, 16.0f/9.0f, 0.3f, 100.0f);
cameraOrtho(&game->camera,
0, engine->render.width,
engine->render.height, 0,
0.01f, 1000.0f
);
shaderUse(&game->shader);
shaderUseCamera(&game->shader, &game->camera);
shaderUseTexture(&game->shader, &game->texture);
gridSetSize(&grid,
engine->render.width, engine->render.height,
engine->render.width, engine->render.height,
0, 0
);
renderListRenderPass(&game->list, engine, &game->camera, 0, &items);
renderListRender(&game->list, engine, &game->shader);
dynArrayDispose(&items);
for(uint8_t i = 0; i < GRID_BRUH_COUNT; i++) {
gridbruh_t *b = game->items + i;
shaderUsePositionAndScale(&game->shader,
b->x, b->y, 0,
0, 0, 0,
b->width, b->height, 1
);
primitiveDraw(&game->primitive, 0, -1);
}
}
void sandboxSceneDispose(sandboxscene_t *game) {

View File

@ -14,7 +14,9 @@
#include "../../display/primitives/quad.h"
#include "../../display/primitives/cube.h"
#include "../../display/renderlist.h"
#include "../../display/texture.h"
#include "../../file/asset.h"
#include "../../ui/grid.h"
/**
* Initialize the sandbox scene test game.