/**** * * Copyright (c) 1988 by Sun Microsystems, Inc. * @(#)sh_PAT.h 5.12 88/11/09 Copyright 1988 Sun Micro * * PAT.H PATTERN object information * ****/ #ifndef _SH_CLASS_PAT extern float sh_pat_ofs; /* * PAT_TYPE PATTERN object type attribute values */ #define PAT_RANGE 0 /* textured line range */ #define PAT_RANGE_FLOAT 0 /* textured line range */ #define PAT_RANGE_FRACT 1 /* textured line range */ typedef Unsgn8 PAT_type; /* * PATTERN object attributes */ typedef enum { PAT_TYPE, /* type of pattern */ PAT_OFFSET, /* offset of pattern */ PAT_DATA, /* pattern data area */ PAT_SIZE, /* pattern size */ } PAT_attr; #define PAT_ATTRS ((int) PAT_DATA) /* * External PATTERN operators * * Create_Pat(type, data) create PATTERN object * Destroy_Pat(pat) destroy pattern * Get_Pat(pat, attr) get pattern attribute * Set_Pat(pat, attr, val) set pattern attribute * Read_Pat(pat, data, type) read pattern data * Write_Pat(pat, data, type) write pattern data * Print_Pat(pat) print pattern */ #define PAT_OP_Destroy 0 #define PAT_OP_Init 1 #define PAT_OP_Get 2 #define PAT_OP_Set 3 #define PAT_OP_Print 4 #define PAT_OP_Read 5 #define PAT_OP_Write 6 #define PAT_OPERS 7 #define Create_Pat(t, d) ((PATTERN) Create_Obj(CLASS_PAT, t, d)) #define Temp_Pat(t, d) ((PATTERN) Temp_Obj(CLASS_PAT, t, d)) #define Destroy_Pat(p) Destroy_Obj(p) #define Read_Pat(p,d,t) ((PATTERN) GetOper_Obj(p, PAT_OP_Read)(p,d,t)) #define Write_Pat(p,d,t) ((PATTERN) GetOper_Obj(p, PAT_OP_Write)(p,d,t)) #define Print_Pat(p) ((void) GetOper_Obj(p, PAT_OP_Print)(p)) #define Set_Pat(p,a,v) ((void) GetOper_Obj(p, PAT_OP_Set)(p,a,v)) /* * Pattern "Get" macros * Fetching the pattern attributes are implemented with macros */ #define Get_Pat(p,a) CAT(a,get)((PATTERN) p) #define PAT_OFFSETget(p) ((p)->PAT_OFFSET) #define PAT_TYPEget(p) ((p)->PAT_TYPE) #define PAT_SIZEget(p) ((p)->PAT_SIZE) #define PAT_DATAget(p) ((p)->PAT_DATA) struct class_PAT { #include "sh_PAT.ah" }; #define _SH_CLASS_PAT #endif /* _SH_CLASS_PAT */