sm64

A Super Mario 64 decompilation
Log | Files | Refs | README | LICENSE

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