Add hud
This commit is contained in:
parent
9d8ee1a693
commit
04e889521d
12
Makefile
12
Makefile
|
@ -104,7 +104,7 @@ TEXTURE_IMAGES = $(TEXTURE_SCRIPTS:assets/%.ims=portal_pak_modified/%.png)
|
|||
|
||||
portal_pak_modified/%.png: portal_pak_dir/%.png assets/%.ims
|
||||
@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)
|
||||
$(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
|
||||
|
||||
build/src/scene/hud.o: build/assets/materials/hud.h
|
||||
|
||||
####################
|
||||
## 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) -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)
|
||||
$(CC) $(CFLAGS) -MM $^ -MF "$(@:.o=.d)" -MT"$@"
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
|
@ -163,7 +169,7 @@ $(BOOT_OBJ): $(BOOT)
|
|||
|
||||
# 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)
|
||||
|
||||
|
|
20
assets/materials/hud.skm.yaml
Normal file
20
assets/materials/hud.skm.yaml
Normal 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
|
1
assets/materials/sprites/hud/portal_crosshairs.ims
Normal file
1
assets/materials/sprites/hud/portal_crosshairs.ims
Normal 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%
|
BIN
assets/materials/sprites/hud/portal_crosshairs_mask.png
Normal file
BIN
assets/materials/sprites/hud/portal_crosshairs_mask.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
Binary file not shown.
45
src/scene/hud.c
Normal file
45
src/scene/hud.c
Normal 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
8
src/scene/hud.h
Normal file
|
@ -0,0 +1,8 @@
|
|||
#ifndef __SCENE_HUD_H__
|
||||
#define __SCENE_HUD_H__
|
||||
|
||||
#include "../graphics/renderstate.h"
|
||||
|
||||
void hudRender(struct RenderState* renderState);
|
||||
|
||||
#endif
|
|
@ -20,6 +20,7 @@
|
|||
#include "../levels/levels.h"
|
||||
#include "../scene/portal_surface.h"
|
||||
#include "../math/mathf.h"
|
||||
#include "./hud.h"
|
||||
|
||||
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);
|
||||
gSPGeometryMode(renderState->dl++, G_ZBUFFER | G_LIGHTING | G_CULL_BOTH, G_SHADE);
|
||||
|
||||
hudRender(renderState);
|
||||
|
||||
// sceneRenderPerformanceMetrics(scene, renderState, task);
|
||||
|
||||
// contactSolverDebugDraw(&gContactSolver, renderState);
|
||||
|
|
Loading…
Reference in a new issue