197 lines
3.7 KiB
C
197 lines
3.7 KiB
C
#ifndef __NOUVEAU_GLDEFS_H__
|
|
#define __NOUVEAU_GLDEFS_H__
|
|
|
|
static inline unsigned
|
|
nvgl_blend_func(unsigned factor)
|
|
{
|
|
switch (factor) {
|
|
case PIPE_BLENDFACTOR_ZERO:
|
|
return 0x0000;
|
|
case PIPE_BLENDFACTOR_ONE:
|
|
return 0x0001;
|
|
case PIPE_BLENDFACTOR_SRC_COLOR:
|
|
return 0x0300;
|
|
case PIPE_BLENDFACTOR_INV_SRC_COLOR:
|
|
return 0x0301;
|
|
case PIPE_BLENDFACTOR_SRC_ALPHA:
|
|
return 0x0302;
|
|
case PIPE_BLENDFACTOR_INV_SRC_ALPHA:
|
|
return 0x0303;
|
|
case PIPE_BLENDFACTOR_DST_ALPHA:
|
|
return 0x0304;
|
|
case PIPE_BLENDFACTOR_INV_DST_ALPHA:
|
|
return 0x0305;
|
|
case PIPE_BLENDFACTOR_DST_COLOR:
|
|
return 0x0306;
|
|
case PIPE_BLENDFACTOR_INV_DST_COLOR:
|
|
return 0x0307;
|
|
case PIPE_BLENDFACTOR_SRC_ALPHA_SATURATE:
|
|
return 0x0308;
|
|
case PIPE_BLENDFACTOR_CONST_COLOR:
|
|
return 0x8001;
|
|
case PIPE_BLENDFACTOR_INV_CONST_COLOR:
|
|
return 0x8002;
|
|
case PIPE_BLENDFACTOR_CONST_ALPHA:
|
|
return 0x8003;
|
|
case PIPE_BLENDFACTOR_INV_CONST_ALPHA:
|
|
return 0x8004;
|
|
default:
|
|
return 0x0000;
|
|
}
|
|
}
|
|
|
|
static inline unsigned
|
|
nvgl_blend_eqn(unsigned func)
|
|
{
|
|
switch (func) {
|
|
case PIPE_BLEND_ADD:
|
|
return 0x8006;
|
|
case PIPE_BLEND_MIN:
|
|
return 0x8007;
|
|
case PIPE_BLEND_MAX:
|
|
return 0x8008;
|
|
case PIPE_BLEND_SUBTRACT:
|
|
return 0x800a;
|
|
case PIPE_BLEND_REVERSE_SUBTRACT:
|
|
return 0x800b;
|
|
default:
|
|
return 0x8006;
|
|
}
|
|
}
|
|
|
|
static inline unsigned
|
|
nvgl_logicop_func(unsigned func)
|
|
{
|
|
switch (func) {
|
|
case PIPE_LOGICOP_CLEAR:
|
|
return 0x1500;
|
|
case PIPE_LOGICOP_NOR:
|
|
return 0x1508;
|
|
case PIPE_LOGICOP_AND_INVERTED:
|
|
return 0x1504;
|
|
case PIPE_LOGICOP_COPY_INVERTED:
|
|
return 0x150c;
|
|
case PIPE_LOGICOP_AND_REVERSE:
|
|
return 0x1502;
|
|
case PIPE_LOGICOP_INVERT:
|
|
return 0x150a;
|
|
case PIPE_LOGICOP_XOR:
|
|
return 0x1506;
|
|
case PIPE_LOGICOP_NAND:
|
|
return 0x150e;
|
|
case PIPE_LOGICOP_AND:
|
|
return 0x1501;
|
|
case PIPE_LOGICOP_EQUIV:
|
|
return 0x1509;
|
|
case PIPE_LOGICOP_NOOP:
|
|
return 0x1505;
|
|
case PIPE_LOGICOP_OR_INVERTED:
|
|
return 0x150d;
|
|
case PIPE_LOGICOP_COPY:
|
|
return 0x1503;
|
|
case PIPE_LOGICOP_OR_REVERSE:
|
|
return 0x150b;
|
|
case PIPE_LOGICOP_OR:
|
|
return 0x1507;
|
|
case PIPE_LOGICOP_SET:
|
|
return 0x150f;
|
|
default:
|
|
return 0x1505;
|
|
}
|
|
}
|
|
|
|
static inline unsigned
|
|
nvgl_comparison_op(unsigned op)
|
|
{
|
|
switch (op) {
|
|
case PIPE_FUNC_NEVER:
|
|
return 0x0200;
|
|
case PIPE_FUNC_LESS:
|
|
return 0x0201;
|
|
case PIPE_FUNC_EQUAL:
|
|
return 0x0202;
|
|
case PIPE_FUNC_LEQUAL:
|
|
return 0x0203;
|
|
case PIPE_FUNC_GREATER:
|
|
return 0x0204;
|
|
case PIPE_FUNC_NOTEQUAL:
|
|
return 0x0205;
|
|
case PIPE_FUNC_GEQUAL:
|
|
return 0x0206;
|
|
case PIPE_FUNC_ALWAYS:
|
|
return 0x0207;
|
|
default:
|
|
return 0x0207;
|
|
}
|
|
}
|
|
|
|
static inline unsigned
|
|
nvgl_polygon_mode(unsigned mode)
|
|
{
|
|
switch (mode) {
|
|
case PIPE_POLYGON_MODE_POINT:
|
|
return 0x1b00;
|
|
case PIPE_POLYGON_MODE_LINE:
|
|
return 0x1b01;
|
|
case PIPE_POLYGON_MODE_FILL:
|
|
return 0x1b02;
|
|
default:
|
|
return 0x1b02;
|
|
}
|
|
}
|
|
|
|
static inline unsigned
|
|
nvgl_stencil_op(unsigned op)
|
|
{
|
|
switch (op) {
|
|
case PIPE_STENCIL_OP_ZERO:
|
|
return 0x0000;
|
|
case PIPE_STENCIL_OP_INVERT:
|
|
return 0x150a;
|
|
case PIPE_STENCIL_OP_KEEP:
|
|
return 0x1e00;
|
|
case PIPE_STENCIL_OP_REPLACE:
|
|
return 0x1e01;
|
|
case PIPE_STENCIL_OP_INCR:
|
|
return 0x1e02;
|
|
case PIPE_STENCIL_OP_DECR:
|
|
return 0x1e03;
|
|
case PIPE_STENCIL_OP_INCR_WRAP:
|
|
return 0x8507;
|
|
case PIPE_STENCIL_OP_DECR_WRAP:
|
|
return 0x8508;
|
|
default:
|
|
return 0x1e00;
|
|
}
|
|
}
|
|
|
|
static inline unsigned
|
|
nvgl_primitive(unsigned prim) {
|
|
switch (prim) {
|
|
case PIPE_PRIM_POINTS:
|
|
return 0x0001;
|
|
case PIPE_PRIM_LINES:
|
|
return 0x0002;
|
|
case PIPE_PRIM_LINE_LOOP:
|
|
return 0x0003;
|
|
case PIPE_PRIM_LINE_STRIP:
|
|
return 0x0004;
|
|
case PIPE_PRIM_TRIANGLES:
|
|
return 0x0005;
|
|
case PIPE_PRIM_TRIANGLE_STRIP:
|
|
return 0x0006;
|
|
case PIPE_PRIM_TRIANGLE_FAN:
|
|
return 0x0007;
|
|
case PIPE_PRIM_QUADS:
|
|
return 0x0008;
|
|
case PIPE_PRIM_QUAD_STRIP:
|
|
return 0x0009;
|
|
case PIPE_PRIM_POLYGON:
|
|
return 0x000a;
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
#endif
|