📄 hk_public.h
字号:
/* Raster-op */#ifndef LOCOREtypedef int Hk_raster_op;#endif !LOCORE#define HK_ROP_CLR 0x00#define HK_ROP_SRC_NOR_DST 0x01#define HK_ROP_NSRC_AND_DST 0x02#define HK_ROP_NOT_SRC 0x03#define HK_ROP_SRC_AND_NDST 0x04#define HK_ROP_NOT_DST 0x05#define HK_ROP_SRC_XOR_DST 0x06#define HK_ROP_SRC_NAND_DST 0x07#define HK_ROP_SRC_AND_DST 0x08#define HK_ROP_SRC_XNOR_DST 0x09#define HK_ROP_DST 0x0a#define HK_ROP_NSRC_OR_DST 0x0b#define HK_ROP_SRC 0x0c#define HK_ROP_SRC_OR_NDST 0x0d#define HK_ROP_SRC_OR_DST 0x0e#define HK_ROP_SET 0x0f/* *********************************************************************** * WARNING: The following typedefs must be kept in sync with the * corresponding GT typedefs: Hk_buffer, Hk_plane_group, Hk_wlut_update, * and Hk_clut_update. *********************************************************************** *//* Plane group */#ifndef LOCOREtypedef int Hk_plane_group;#endif !LOCORE#define HK_8BIT_RED 0#define HK_8BIT_GREEN 1#define HK_8BIT_BLUE 2#define HK_8BIT_OVERLAY 3#define HK_24BIT 4/* Draw buffer */#ifndef LOCOREtypedef int Hk_buffer;#endif !LOCORE#define HK_BUFFER_A 0#define HK_BUFFER_B 1/* Stereo mode */#ifndef LOCOREtypedef int Hk_stereo_mode;#endif !LOCORE#define HK_STEREO_NONE 0#define HK_STEREO_LEFT 1#define HK_STEREO_RIGHT 2/* Spline basis function */#ifndef LOCOREtypedef int Hk_basis;#endif !LOCORE#define HK_BASIS_BSPLINES 0#define HK_BASIS_BEZIER 1/* Curve placement */#ifndef LOCOREtypedef int Hk_curve_placement;#endif !LOCORE#define HK_UNIFORM 0#define HK_NON_UNIFORM 1/* Matrix type */#ifndef LOCOREtypedef int Hk_matrix_type;#endif !LOCORE#define HK_AFFINE_MATRIX 0#define HK_NON_AFFINE_MATRIX 1/* Window lookup table mask bits */#define HK_WLUT_MASK_IMAGE 0x01#define HK_WLUT_MASK_OVERLAY 0x02#define HK_WLUT_MASK_PLANE_GROUP 0x04#define HK_WLUT_MASK_CLUT 0x08#define HK_WLUT_MASK_FCS 0x10/* Fast clear none */#define HK_FCS_NONE (-1)/* Default CLUT table for WLUT updates */#define HK_DEFAULT_CLUT (-1)#ifndef LOCORE/* *-------------------------------------------------------------- * * Typedefs for geometry structures * *-------------------------------------------------------------- *//* Polyline vertex */typedef struct Hk_vertex Hk_vertex;struct Hk_vertex { float x, y, z;};/* Polyline vertex with color */typedef struct Hk_rgb_vertex Hk_rgb_vertex;struct Hk_rgb_vertex { float x, y, z; float r, g, b;};/* Polyline vertex with header */typedef struct Hk_vertex_h Hk_vertex_h;struct Hk_vertex_h { unsigned header; float x, y, z;};/* Polyline vertex with color and header */typedef struct Hk_rgb_vertex_h Hk_rgb_vertex_h;struct Hk_rgb_vertex_h { unsigned header; float x, y, z; float r, g, b;};/* Triangle vertex with normal */typedef struct Hk_tri_normal Hk_tri_normal;struct Hk_tri_normal { unsigned tri_header; float x, y, z; float nx, ny, nz;};/* Triangle vertex with normal and color */typedef struct Hk_tri_normal_color Hk_tri_normal_color;struct Hk_tri_normal_color { unsigned tri_header; float x, y, z; float nx, ny, nz; float r, g, b;};/* Triangle vertex with 2 normals */typedef struct Hk_tri_vfnormal Hk_tri_vfnormal;struct Hk_tri_vfnormal { unsigned tri_header; float x, y, z; float vnx, vny, vnz; float fnx, fny, fnz;};/* Triangle vertex with 2 normals and 2 colors */typedef struct Hk_tri_vfnormal_vfcolor Hk_tri_vfnormal_vfcolor;struct Hk_tri_vfnormal_vfcolor { unsigned tri_header; float x, y, z; float vnx, vny, vnz; float fnx, fny, fnz; float vr, vg, vb; float fr, fg, fb;};/* * WARNING: The following structures contains doubles and must be padded * so that all doubles start on an even 8 byte (2 word) boundary, and * the sizeof(struct) is a multiple of 8 bytes. *//* Curve control point */typedef struct Hk_dcoord4 Hk_dcoord4;struct Hk_dcoord4 { double x, y, z, w;};/* *-------------------------------------------------------------- * * Typedefs for attribute structures * *-------------------------------------------------------------- *//* Color */typedef struct Hk_rgb Hk_rgb;struct Hk_rgb { float r; float g; float b;};/* Position vector */typedef struct Hk_xyz Hk_xyz;struct Hk_xyz { float x; float y; float z;};/* Direction vector */typedef struct Hk_normal Hk_normal;struct Hk_normal { float nx; float ny; float nz;};/* Line pattern */typedef struct Hk_pattern Hk_pattern;struct Hk_pattern { float offset; int num_segments; float on_off_seg[1];};/* * WARNING: The following structures contains doubles and must be * padded so that all doubles start on an even 8 byte (2 word) * boundary, and the sizeof(struct) is a multiple of 8 bytes. *//* Curve approximation */typedef struct Hk_curve_approx Hk_curve_approx;typedef struct Hk_curve_approx Hk_trim_approx;struct Hk_curve_approx { double approx_value; Hk_curve_type approx_type; int padding; /* Make sizeof(struct) on 8-byte boundary */};/* Surface approximation */typedef struct Hk_surf_approx Hk_surf_approx;struct Hk_surf_approx { double u_approx_value; double v_approx_value; Hk_surf_type approx_type; int padding; /* Make sizeof(struct) on 8-byte boundary */};/* General style */typedef struct Hk_general_style Hk_general_style;struct Hk_general_style { Hk_interior_style real_style; unsigned general_info;};/* Isoparametric curve info */typedef struct Hk_iso_curve_info Hk_iso_curve_info;struct Hk_iso_curve_info { int flag; Hk_curve_placement placement; int u_count; int v_count;};/* Polygon material properties */typedef struct Hk_material_properties Hk_material_properties;struct Hk_material_properties { float ambient_reflection_coefficient; float diffuse_reflection_coefficient; float specular_reflection_coefficient; float specular_exponent;};/* Polygon hatch style */typedef struct Hk_hatch_style Hk_hatch_style;struct Hk_hatch_style { int hatch_transparency; unsigned hatch_pattern[HK_SD_MAX];};/* Glyph */typedef struct Hk_glyph Hk_glyph;struct Hk_glyph { float width; unsigned *char_pkt; /* Pointer to polyline commands */};/* Font */typedef struct Hk_font Hk_font;struct Hk_font { float top_line; float bottom_line; float max_width; int num_ch; Hk_glyph *ch_data[1]; /* [num_ch] */};/* Font table */typedef struct Hk_font_table Hk_font_table;struct Hk_font_table { int num_char_sets; int num_font_ids; Hk_font *desc[1]; /* [num_char_sets][num_font_ids] */};/* Text character set */typedef struct Hk_character_set Hk_character_set;struct Hk_character_set { int codeset; int character_set;};/* Text font ID */typedef struct Hk_font_id Hk_font_id;struct Hk_font_id { int codeset; int font_id;};/* Text up vector */typedef struct Hk_xy Hk_xy;struct Hk_xy { float x; float y;};/* Text alignment */typedef struct Hk_text_alignment Hk_text_alignment;struct Hk_text_alignment { Hk_text_h_alignment halign; Hk_text_v_alignment valign;};/* Marker geometry */typedef struct Hk_marker Hk_marker;struct Hk_marker { float size; unsigned *packet; /* Pointer to polyline commands */};/* Marker definition */typedef struct Hk_marker_type Hk_marker_type;struct Hk_marker_type { int num_tessellations; Hk_marker markers[1]; /* [num_tessellations] */};/* Depth-cue parameters */typedef struct Hk_depth_cue_parameters Hk_depth_cue_parameters;struct Hk_depth_cue_parameters { float z_front; float z_back; float scale_front; float scale_back;};/* Matrix definitions */typedef float Hk_fmatrix[16];typedef double Hk_dmatrix[16];typedef struct Hk_model_transform Hk_model_transform;struct Hk_model_transform { Hk_dmatrix matrix; double scale;};/* Aspect ratio definition */typedef struct Hk_aspect_ratio Hk_aspect_ratio;struct Hk_aspect_ratio { Hk_aspect flag; float ratio;};/* Window boundary */typedef struct Hk_window_boundary Hk_window_boundary;struct Hk_window_boundary { int xleft; int ytop; int width; int height;};/* * WARNING: The following structure contains doubles and must be * padded so that all doubles start on an even 8 byte (2 word) * boundary, and the sizeof(struct) is a multiple of 8 bytes. *//* Viewport definition */typedef struct Hk_view Hk_view;struct Hk_view { float xcenter; /* Viewport center */ float ycenter; float xsize; /* Half size */ float ysize; Hk_dmatrix vt; /* Viewing matrix */ Hk_dmatrix ivt; /* Inverse of vt */ double scale_xy; /* Max of X and Y scale */ double scale_z; /* ZScale(vt) * Sign(vt) */};/* NPC clipping limits definition */typedef struct Hk_clipping_limits Hk_clipping_limits;struct Hk_clipping_limits { float xmin; float ymin; float zmin; float xmax; float ymax; float zmax;};/* Z-range */typedef struct Hk_z_range Hk_z_range;struct Hk_z_range { unsigned zfront; unsigned zback;};/* PHIGS filter */typedef unsigned Hk_phigs_filter[HK_NUMBER_FILTER_WORDS];/* Name set */typedef struct Hk_name_set_update Hk_name_set_update;struct Hk_name_set_update { Hk_phigs_filter del_mask; Hk_phigs_filter add_mask;};/* Filter pair */typedef struct Hk_filter_pair Hk_filter_pair;struct Hk_filter_pair { Hk_phigs_filter inclusion; Hk_phigs_filter exclusion;};/* Model clipping plane */typedef struct Hk_mcp Hk_mcp;struct Hk_mcp { float x; float y; float z; float nx; float ny; float nz;};/* Pick hit */typedef struct Hk_pick_hit Hk_pick_hit;struct Hk_pick_hit {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -