draw_objects.h (1705B)
1 #ifndef GD_DRAW_OBJECTS_H 2 #define GD_DRAW_OBJECTS_H 3 4 #include <PR/ultratypes.h> 5 6 #include "gd_types.h" 7 #include "macros.h" 8 9 // TODO: make this an enum without causing bss reordering 10 #define COLOUR_BLACK 0 11 #define COLOUR_WHITE 1 12 #define COLOUR_RED 2 13 #define COLOUR_GREEN 3 14 #define COLOUR_BLUE 4 15 #define COLOUR_GRAY 5 16 #define COLOUR_DARK_GRAY 6 17 #define COLOUR_DARK_BLUE 7 18 #define COLOUR_YELLOW 8 19 #define COLOUR_PINK 9 20 #define COLOUR_BLACK2 10 // same as COLOUR_BLACK 21 22 // data 23 extern struct ObjCamera *gViewUpdateCamera; 24 25 // bss 26 // this is unused, but it needs to be declared before gGdLightGroup 27 extern u8 gUnref_801B9B30[0x88]; 28 extern struct ObjGroup *gGdLightGroup; // ObjGroup* of ObjLights 29 30 // functions 31 void draw_light(struct ObjLight *light); 32 void draw_material(struct ObjMaterial *mtl); 33 struct GdColour *gd_get_colour(s32 idx); 34 void draw_face(struct ObjFace *face); 35 void draw_label(struct ObjLabel *label); 36 void draw_net(struct ObjNet *self); 37 void draw_gadget(struct ObjGadget *gdgt); 38 void draw_camera(struct ObjCamera *cam); 39 void world_pos_to_screen_coords(struct GdVec3f *pos, struct ObjCamera *cam, struct ObjView *view); 40 void draw_nothing(UNUSED struct GdObj *nop); 41 void draw_particle(struct GdObj *obj); 42 void draw_bone(struct GdObj *obj); 43 void draw_joint(struct GdObj *obj); 44 void draw_group(struct ObjGroup *grp); 45 void draw_plane(struct GdObj *obj); 46 void apply_obj_draw_fn(struct GdObj *obj); 47 void create_gddl_for_shapes(struct ObjGroup *grp); 48 void map_face_materials(struct ObjGroup *faces, struct ObjGroup *mtls); 49 void map_vertices(struct ObjGroup *facegrp, struct ObjGroup *vtxgrp); 50 void update_view(struct ObjView *view); 51 52 #endif // GD_DRAW_OBJECTS_H