This commit is contained in:
James Lambert 2022-05-09 22:37:42 -06:00
parent 9d8ee1a693
commit 04e889521d
8 changed files with 86 additions and 3 deletions

View file

@ -104,7 +104,7 @@ TEXTURE_IMAGES = $(TEXTURE_SCRIPTS:assets/%.ims=portal_pak_modified/%.png)
portal_pak_modified/%.png: portal_pak_dir/%.png assets/%.ims portal_pak_modified/%.png: portal_pak_dir/%.png assets/%.ims
@mkdir -p $(@D) @mkdir -p $(@D)
convert $< `cat $(@:portal_pak_modified/%.png=assets/%.ims)` $@ convert $< $(shell cat $(@:portal_pak_modified/%.png=assets/%.ims)) $@
#################### ####################
@ -115,8 +115,14 @@ build/assets/materials/static.h: assets/materials/static.skm.yaml $(TEXTURE_IMAG
@mkdir -p $(@D) @mkdir -p $(@D)
$(SKELATOOL64) -n static -m $< -M $@ $(SKELATOOL64) -n static -m $< -M $@
build/assets/materials/hud.h: assets/materials/hud.skm.yaml $(TEXTURE_IMAGES)
@mkdir -p $(@D)
$(SKELATOOL64) -n hud -m $< -M $@
src/levels/level_def_gen.h: build/assets/materials/static.h src/levels/level_def_gen.h: build/assets/materials/static.h
build/src/scene/hud.o: build/assets/materials/hud.h
#################### ####################
## Test Chambers ## Test Chambers
#################### ####################
@ -138,7 +144,7 @@ build/assets/test_chambers/%.o: build/assets/test_chambers/%.c build/assets/mate
$(CC) $(CFLAGS) -MM $^ -MF "$(@:.o=.d)" -MT"$@" $(CC) $(CFLAGS) -MM $^ -MF "$(@:.o=.d)" -MT"$@"
$(CC) $(CFLAGS) -c -o $@ $< $(CC) $(CFLAGS) -c -o $@ $<
build/assets/materials/static_mat.o: build/assets/materials/static_mat.c build/assets/materials/%_mat.o: build/assets/materials/%_mat.c
@mkdir -p $(@D) @mkdir -p $(@D)
$(CC) $(CFLAGS) -MM $^ -MF "$(@:.o=.d)" -MT"$@" $(CC) $(CFLAGS) -MM $^ -MF "$(@:.o=.d)" -MT"$@"
$(CC) $(CFLAGS) -c -o $@ $< $(CC) $(CFLAGS) -c -o $@ $<
@ -163,7 +169,7 @@ $(BOOT_OBJ): $(BOOT)
# without debugger # without debugger
CODEOBJECTS = $(patsubst %.c, build/%.o, $(CODEFILES)) $(TEST_CHAMBER_OBJECTS) build/assets/materials/static_mat.o CODEOBJECTS = $(patsubst %.c, build/%.o, $(CODEFILES)) $(TEST_CHAMBER_OBJECTS) build/assets/materials/static_mat.o build/assets/materials/hud_mat.o
CODEOBJECTS_NO_DEBUG = $(CODEOBJECTS) CODEOBJECTS_NO_DEBUG = $(CODEOBJECTS)

View file

@ -0,0 +1,20 @@
materials:
portal_crosshairs:
gDPSetTile:
filename: ../../portal_pak_modified/materials/sprites/hud/portal_crosshairs.png
siz: G_IM_SIZ_4b
fmt: G_IM_FMT_I
gDPSetRenderMode: G_RM_XLU_SURF
gDPSetCombineMode:
color: ["0", "0", "0", "PRIMITIVE"]
alpha: ["0", "0", "0", "TEXEL0"]
gSPGeometryMode:
clear: [G_ZBUFFER]
gDPSetTexturePersp: G_TP_NONE
gDPSetTextureLUT: G_TT_NONE
gDPSetTextureFilter: G_TF_POINT
gDPSetPrimColor:
r: 255
g: 255
b: 255
a: 255

View file

@ -0,0 +1 @@
-alpha extract -fill black -draw 'rectangle 47,0 49,64' -draw 'rectangle 95,0 97,64' -draw 'rectangle 143,0 145,64' -draw 'rectangle 191,0 193,64' -draw 'rectangle 223,0 225,64' -resize 128x32 -level 0%,50%

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

45
src/scene/hud.c Normal file
View file

@ -0,0 +1,45 @@
#include "hud.h"
#include "../../build/assets/materials/hud.h"
#include "../graphics/graphics.h"
#define HUD_CENTER_WIDTH 6
#define HUD_CENTER_HEIGHT 8
#define HUD_CENTER_S 101
#define HUD_CENTER_T 12
#define HUD_OUTER_WIDTH 24
#define HUD_OUTER_HEIGHT 32
#define HUD_OUTER_OFFSET_X 3
#define HUD_OUTER_OFFSET_Y 5
#define HUD_UPPER_X ((SCREEN_WD - HUD_OUTER_WIDTH - (HUD_OUTER_OFFSET_X << 1)) << 1)
#define HUD_UPPER_Y ((SCREEN_HT - HUD_OUTER_HEIGHT - (HUD_OUTER_OFFSET_Y << 1)) << 1)
#define HUD_LOWER_X ((SCREEN_WD - HUD_OUTER_WIDTH + (HUD_OUTER_OFFSET_X << 1)) << 1)
#define HUD_LOWER_Y ((SCREEN_HT - HUD_OUTER_HEIGHT + (HUD_OUTER_OFFSET_Y << 1)) << 1)
void hudRender(struct RenderState* renderState) {
gSPDisplayList(renderState->dl++, hud_material_list[PORTAL_CROSSHAIRS_INDEX]);
gSPTextureRectangle(renderState->dl++,
(SCREEN_WD - HUD_CENTER_WIDTH) << 1, (SCREEN_HT - HUD_CENTER_HEIGHT) << 1,
(SCREEN_WD + HUD_CENTER_WIDTH) << 1, (SCREEN_HT + HUD_CENTER_HEIGHT) << 1,
G_TX_RENDERTILE, HUD_CENTER_S << 5, HUD_CENTER_T << 5, 1 << 10, 1 << 10);
gDPSetPrimColor(renderState->dl++, 255, 255, 255, 128, 0, 255);
gSPTextureRectangle(renderState->dl++,
HUD_UPPER_X, HUD_UPPER_Y,
HUD_UPPER_X + (HUD_OUTER_WIDTH << 2), HUD_UPPER_Y + (HUD_OUTER_HEIGHT << 2),
G_TX_RENDERTILE, 0 << 5, 0 << 5, 1 << 10, 1 << 10);
gDPSetPrimColor(renderState->dl++, 255, 255, 0, 128, 255, 255);
gSPTextureRectangle(renderState->dl++,
HUD_LOWER_X, HUD_LOWER_Y,
HUD_LOWER_X + (HUD_OUTER_WIDTH << 2), HUD_LOWER_Y + (HUD_OUTER_HEIGHT << 2),
G_TX_RENDERTILE, HUD_OUTER_WIDTH << 5, 0 << 5, 1 << 10, 1 << 10);
}

8
src/scene/hud.h Normal file
View file

@ -0,0 +1,8 @@
#ifndef __SCENE_HUD_H__
#define __SCENE_HUD_H__
#include "../graphics/renderstate.h"
void hudRender(struct RenderState* renderState);
#endif

View file

@ -20,6 +20,7 @@
#include "../levels/levels.h" #include "../levels/levels.h"
#include "../scene/portal_surface.h" #include "../scene/portal_surface.h"
#include "../math/mathf.h" #include "../math/mathf.h"
#include "./hud.h"
struct Vector3 gStartPosition = {5.0f, 1.2f, -5.0f}; struct Vector3 gStartPosition = {5.0f, 1.2f, -5.0f};
@ -98,6 +99,8 @@ void sceneRender(struct Scene* scene, struct RenderState* renderState, struct Gr
gDPSetRenderMode(renderState->dl++, G_RM_OPA_SURF, G_RM_OPA_SURF2); gDPSetRenderMode(renderState->dl++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
gSPGeometryMode(renderState->dl++, G_ZBUFFER | G_LIGHTING | G_CULL_BOTH, G_SHADE); gSPGeometryMode(renderState->dl++, G_ZBUFFER | G_LIGHTING | G_CULL_BOTH, G_SHADE);
hudRender(renderState);
// sceneRenderPerformanceMetrics(scene, renderState, task); // sceneRenderPerformanceMetrics(scene, renderState, task);
// contactSolverDebugDraw(&gContactSolver, renderState); // contactSolverDebugDraw(&gContactSolver, renderState);