ps2sdk  1.1
A collection of Open Source libraries used for developing applications on Sony's PlayStation 2® (PS2).
draw_sampling.h File Reference
#include <tamtypes.h>
+ Include dependency graph for draw_sampling.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  lod_t
 
struct  mipmap_t
 
struct  texwrap_t
 

Macros

#define LOD_FORMULAIC   0
 
#define LOD_USE_K   1
 
#define LOD_MAG_NEAREST   0
 
#define LOD_MAG_LINEAR   1
 
#define LOD_MIN_NEAREST   0
 
#define LOD_MIN_LINEAR   1
 
#define LOD_MIN_NEAR_MIPMAP_NEAR   2
 
#define LOD_MIN_NEAR_MIPMAP_LINE   3
 
#define LOD_MIN_LINE_MIPMAP_NEAR   4
 
#define LOD_MIN_LINE_MIPMAP_LINE   5
 
#define LOD_MIPMAP_REGISTER   0
 
#define LOD_MIPMAP_CALCULATE   1
 
#define WRAP_REPEAT   0
 
#define WRAP_CLAMP   1
 
#define WRAP_REGION_CLAMP   2
 
#define WRAP_REGION_REPEAT   3
 
#define ALPHA_EXPAND_NORMAL   0
 
#define ALPHA_EXPAND_TRANSPARENT   1
 

Functions

qword_tdraw_texture_sampling (qword_t *q, int context, lod_t *lod)
 
qword_tdraw_mipmap1 (qword_t *q, int context, mipmap_t *mipmap)
 
qword_tdraw_mipmap2 (qword_t *q, int context, mipmap_t *mipmap)
 
qword_tdraw_texture_wrapping (qword_t *q, int context, texwrap_t *wrap)
 
qword_tdraw_texture_expand_alpha (qword_t *q, unsigned char zero_value, int expand, unsigned char one_value)
 

Detailed Description

Draw library sampling functions

Definition in file draw_sampling.h.

Macro Definition Documentation

◆ ALPHA_EXPAND_NORMAL

#define ALPHA_EXPAND_NORMAL   0

Texture Alpha Expansion

Definition at line 36 of file draw_sampling.h.

◆ ALPHA_EXPAND_TRANSPARENT

#define ALPHA_EXPAND_TRANSPARENT   1

Definition at line 37 of file draw_sampling.h.

◆ LOD_FORMULAIC

#define LOD_FORMULAIC   0

Level of Detail

Definition at line 12 of file draw_sampling.h.

◆ LOD_MAG_LINEAR

#define LOD_MAG_LINEAR   1

Definition at line 17 of file draw_sampling.h.

◆ LOD_MAG_NEAREST

#define LOD_MAG_NEAREST   0

Texture Scaling

Definition at line 16 of file draw_sampling.h.

◆ LOD_MIN_LINE_MIPMAP_LINE

#define LOD_MIN_LINE_MIPMAP_LINE   5

Definition at line 23 of file draw_sampling.h.

◆ LOD_MIN_LINE_MIPMAP_NEAR

#define LOD_MIN_LINE_MIPMAP_NEAR   4

Definition at line 22 of file draw_sampling.h.

◆ LOD_MIN_LINEAR

#define LOD_MIN_LINEAR   1

Definition at line 19 of file draw_sampling.h.

◆ LOD_MIN_NEAR_MIPMAP_LINE

#define LOD_MIN_NEAR_MIPMAP_LINE   3

Definition at line 21 of file draw_sampling.h.

◆ LOD_MIN_NEAR_MIPMAP_NEAR

#define LOD_MIN_NEAR_MIPMAP_NEAR   2

Definition at line 20 of file draw_sampling.h.

◆ LOD_MIN_NEAREST

#define LOD_MIN_NEAREST   0

Definition at line 18 of file draw_sampling.h.

◆ LOD_MIPMAP_CALCULATE

#define LOD_MIPMAP_CALCULATE   1

Definition at line 27 of file draw_sampling.h.

◆ LOD_MIPMAP_REGISTER

#define LOD_MIPMAP_REGISTER   0

Mipmaps

Definition at line 26 of file draw_sampling.h.

◆ LOD_USE_K

#define LOD_USE_K   1

Definition at line 13 of file draw_sampling.h.

◆ WRAP_CLAMP

#define WRAP_CLAMP   1

Definition at line 31 of file draw_sampling.h.

◆ WRAP_REGION_CLAMP

#define WRAP_REGION_CLAMP   2

Definition at line 32 of file draw_sampling.h.

◆ WRAP_REGION_REPEAT

#define WRAP_REGION_REPEAT   3

Definition at line 33 of file draw_sampling.h.

◆ WRAP_REPEAT

#define WRAP_REPEAT   0

Texture wrapping

Definition at line 30 of file draw_sampling.h.

Function Documentation

◆ draw_mipmap1()

qword_t* draw_mipmap1 ( qword_t q,
int  context,
mipmap_t mipmap 
)

Mipmap levels 1-3

Definition at line 243 of file draw_environment.c.

244 {
245 
247  q++;
248 
249  PACK_GIFTAG(q, GS_SET_MIPTBP1(mipmap->address1,mipmap->width1,
250  mipmap->address2,mipmap->width2,
251  mipmap->address3,mipmap->width3), GS_REG_MIPTBP1 + context);
252  q++;
253 
254  return q;
255 
256 }
u8 context
Definition: main.c:71
#define PACK_GIFTAG(Q, D0, D1)
Definition: gif_tags.h:76
#define GIF_SET_TAG(NLOOP, EOP, PRE, PRIM, FLG, NREG)
Definition: gif_tags.h:80
#define GIF_REG_AD
Definition: gif_tags.h:72
#define GIF_FLG_PACKED
Definition: gif_tags.h:35
#define GS_REG_MIPTBP1
Definition: gs_gp.h:69
#define GS_SET_MIPTBP1(TBA1, TBW1, TBA2, TBW2, TBA3, TBW3)
Definition: gs_gp.h:223
char width3
Definition: draw_sampling.h:55
int address1
Definition: draw_sampling.h:50
char width2
Definition: draw_sampling.h:54
char width1
Definition: draw_sampling.h:53
int address2
Definition: draw_sampling.h:51
int address3
Definition: draw_sampling.h:52

References mipmap_t::address1, mipmap_t::address2, mipmap_t::address3, context, GIF_FLG_PACKED, GIF_REG_AD, GIF_SET_TAG, GS_REG_MIPTBP1, GS_SET_MIPTBP1, PACK_GIFTAG, mipmap_t::width1, mipmap_t::width2, and mipmap_t::width3.

◆ draw_mipmap2()

qword_t* draw_mipmap2 ( qword_t q,
int  context,
mipmap_t mipmap 
)

Mipmap levels 4-6

Definition at line 258 of file draw_environment.c.

259 {
260 
262  q++;
263 
264  PACK_GIFTAG(q, GS_SET_MIPTBP2(mipmap->address1,mipmap->width1,
265  mipmap->address2,mipmap->width2,
266  mipmap->address3,mipmap->width3), GS_REG_MIPTBP2 + context);
267  q++;
268 
269  return q;
270 
271 }
#define GS_REG_MIPTBP2
Definition: gs_gp.h:75
#define GS_SET_MIPTBP2(TBA4, TBW4, TBA5, TBW5, TBA6, TBW6)
Definition: gs_gp.h:228

References mipmap_t::address1, mipmap_t::address2, mipmap_t::address3, context, GIF_FLG_PACKED, GIF_REG_AD, GIF_SET_TAG, GS_REG_MIPTBP2, GS_SET_MIPTBP2, PACK_GIFTAG, mipmap_t::width1, mipmap_t::width2, and mipmap_t::width3.

◆ draw_texture_expand_alpha()

qword_t* draw_texture_expand_alpha ( qword_t q,
unsigned char  zero_value,
int  expand,
unsigned char  one_value 
)

Alpha Expansion Values

Definition at line 315 of file draw_environment.c.

316 {
317 
319  q++;
320 
321  PACK_GIFTAG(q, GS_SET_TEXA(zero_value,expand,one_value), GS_REG_TEXA);
322  q++;
323 
324  return q;
325 
326 }
#define GS_SET_TEXA(A0, AM, A1)
Definition: gs_gp.h:300
#define GS_REG_TEXA
Definition: gs_gp.h:81

References GIF_FLG_PACKED, GIF_REG_AD, GIF_SET_TAG, GS_REG_TEXA, GS_SET_TEXA, and PACK_GIFTAG.

◆ draw_texture_sampling()

qword_t* draw_texture_sampling ( qword_t q,
int  context,
lod_t lod 
)

Texture Sampling, Level-of-Detail, and Filtering

Definition at line 230 of file draw_environment.c.

231 {
232 
234  q++;
235 
237  q++;
238 
239  return q;
240 
241 }
lod_t lod
Definition: main.c:86
#define GS_REG_TEX1
Definition: gs_gp.h:43
#define GS_SET_TEX1(LCM, MXL, MMAG, MMIN, MTBA, L, K)
Definition: gs_gp.h:289
unsigned char mag_filter
Definition: draw_sampling.h:42
float k
Definition: draw_sampling.h:46
unsigned char l
Definition: draw_sampling.h:45
unsigned char calculation
Definition: draw_sampling.h:40
unsigned char mipmap_select
Definition: draw_sampling.h:44
unsigned char min_filter
Definition: draw_sampling.h:43
unsigned char max_level
Definition: draw_sampling.h:41

References lod_t::calculation, context, GIF_FLG_PACKED, GIF_REG_AD, GIF_SET_TAG, GS_REG_TEX1, GS_SET_TEX1, lod_t::k, lod_t::l, lod, lod_t::mag_filter, lod_t::max_level, lod_t::min_filter, lod_t::mipmap_select, and PACK_GIFTAG.

Referenced by run_demo(), and setup_texture().

◆ draw_texture_wrapping()

qword_t* draw_texture_wrapping ( qword_t q,
int  context,
texwrap_t wrap 
)

Texture Clamping

Definition at line 301 of file draw_environment.c.

302 {
303 
305  q++;
306 
307  PACK_GIFTAG(q, GS_SET_CLAMP(wrap->horizontal,wrap->vertical,wrap->minu,
308  wrap->maxu,wrap->minv,wrap->maxv), GS_REG_CLAMP + context);
309  q++;
310 
311  return q;
312 
313 }
#define GS_REG_CLAMP
Definition: gs_gp.h:31
#define GS_SET_CLAMP(WMS, WMT, MINU, MAXU, MINV, MAXV)
Definition: gs_gp.h:180
unsigned char vertical
Definition: draw_sampling.h:60
unsigned char horizontal
Definition: draw_sampling.h:59

References context, GIF_FLG_PACKED, GIF_REG_AD, GIF_SET_TAG, GS_REG_CLAMP, GS_SET_CLAMP, texwrap_t::horizontal, texwrap_t::maxu, texwrap_t::maxv, texwrap_t::minu, texwrap_t::minv, PACK_GIFTAG, and texwrap_t::vertical.