| #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 |