1848b8605Smrg#ifndef __NOUVEAU_GLDEFS_H__ 2848b8605Smrg#define __NOUVEAU_GLDEFS_H__ 3848b8605Smrg 4b8e80941Smrgstatic inline unsigned 5848b8605Smrgnvgl_blend_func(unsigned factor) 6848b8605Smrg{ 7848b8605Smrg switch (factor) { 8848b8605Smrg case PIPE_BLENDFACTOR_ZERO: 9848b8605Smrg return 0x0000; 10848b8605Smrg case PIPE_BLENDFACTOR_ONE: 11848b8605Smrg return 0x0001; 12848b8605Smrg case PIPE_BLENDFACTOR_SRC_COLOR: 13848b8605Smrg return 0x0300; 14848b8605Smrg case PIPE_BLENDFACTOR_INV_SRC_COLOR: 15848b8605Smrg return 0x0301; 16848b8605Smrg case PIPE_BLENDFACTOR_SRC_ALPHA: 17848b8605Smrg return 0x0302; 18848b8605Smrg case PIPE_BLENDFACTOR_INV_SRC_ALPHA: 19848b8605Smrg return 0x0303; 20848b8605Smrg case PIPE_BLENDFACTOR_DST_ALPHA: 21848b8605Smrg return 0x0304; 22848b8605Smrg case PIPE_BLENDFACTOR_INV_DST_ALPHA: 23848b8605Smrg return 0x0305; 24848b8605Smrg case PIPE_BLENDFACTOR_DST_COLOR: 25848b8605Smrg return 0x0306; 26848b8605Smrg case PIPE_BLENDFACTOR_INV_DST_COLOR: 27848b8605Smrg return 0x0307; 28848b8605Smrg case PIPE_BLENDFACTOR_SRC_ALPHA_SATURATE: 29848b8605Smrg return 0x0308; 30848b8605Smrg case PIPE_BLENDFACTOR_CONST_COLOR: 31848b8605Smrg return 0x8001; 32848b8605Smrg case PIPE_BLENDFACTOR_INV_CONST_COLOR: 33848b8605Smrg return 0x8002; 34848b8605Smrg case PIPE_BLENDFACTOR_CONST_ALPHA: 35848b8605Smrg return 0x8003; 36848b8605Smrg case PIPE_BLENDFACTOR_INV_CONST_ALPHA: 37848b8605Smrg return 0x8004; 38848b8605Smrg default: 39848b8605Smrg return 0x0000; 40848b8605Smrg } 41848b8605Smrg} 42848b8605Smrg 43b8e80941Smrgstatic inline unsigned 44848b8605Smrgnvgl_blend_eqn(unsigned func) 45848b8605Smrg{ 46848b8605Smrg switch (func) { 47848b8605Smrg case PIPE_BLEND_ADD: 48848b8605Smrg return 0x8006; 49848b8605Smrg case PIPE_BLEND_MIN: 50848b8605Smrg return 0x8007; 51848b8605Smrg case PIPE_BLEND_MAX: 52848b8605Smrg return 0x8008; 53848b8605Smrg case PIPE_BLEND_SUBTRACT: 54848b8605Smrg return 0x800a; 55848b8605Smrg case PIPE_BLEND_REVERSE_SUBTRACT: 56848b8605Smrg return 0x800b; 57848b8605Smrg default: 58848b8605Smrg return 0x8006; 59848b8605Smrg } 60848b8605Smrg} 61848b8605Smrg 62b8e80941Smrgstatic inline unsigned 63848b8605Smrgnvgl_logicop_func(unsigned func) 64848b8605Smrg{ 65848b8605Smrg switch (func) { 66848b8605Smrg case PIPE_LOGICOP_CLEAR: 67848b8605Smrg return 0x1500; 68848b8605Smrg case PIPE_LOGICOP_NOR: 69848b8605Smrg return 0x1508; 70848b8605Smrg case PIPE_LOGICOP_AND_INVERTED: 71848b8605Smrg return 0x1504; 72848b8605Smrg case PIPE_LOGICOP_COPY_INVERTED: 73848b8605Smrg return 0x150c; 74848b8605Smrg case PIPE_LOGICOP_AND_REVERSE: 75848b8605Smrg return 0x1502; 76848b8605Smrg case PIPE_LOGICOP_INVERT: 77848b8605Smrg return 0x150a; 78848b8605Smrg case PIPE_LOGICOP_XOR: 79848b8605Smrg return 0x1506; 80848b8605Smrg case PIPE_LOGICOP_NAND: 81848b8605Smrg return 0x150e; 82848b8605Smrg case PIPE_LOGICOP_AND: 83848b8605Smrg return 0x1501; 84848b8605Smrg case PIPE_LOGICOP_EQUIV: 85848b8605Smrg return 0x1509; 86848b8605Smrg case PIPE_LOGICOP_NOOP: 87848b8605Smrg return 0x1505; 88848b8605Smrg case PIPE_LOGICOP_OR_INVERTED: 89848b8605Smrg return 0x150d; 90848b8605Smrg case PIPE_LOGICOP_COPY: 91848b8605Smrg return 0x1503; 92848b8605Smrg case PIPE_LOGICOP_OR_REVERSE: 93848b8605Smrg return 0x150b; 94848b8605Smrg case PIPE_LOGICOP_OR: 95848b8605Smrg return 0x1507; 96848b8605Smrg case PIPE_LOGICOP_SET: 97848b8605Smrg return 0x150f; 98848b8605Smrg default: 99848b8605Smrg return 0x1505; 100848b8605Smrg } 101848b8605Smrg} 102848b8605Smrg 103b8e80941Smrgstatic inline unsigned 104848b8605Smrgnvgl_comparison_op(unsigned op) 105848b8605Smrg{ 106848b8605Smrg switch (op) { 107848b8605Smrg case PIPE_FUNC_NEVER: 108848b8605Smrg return 0x0200; 109848b8605Smrg case PIPE_FUNC_LESS: 110848b8605Smrg return 0x0201; 111848b8605Smrg case PIPE_FUNC_EQUAL: 112848b8605Smrg return 0x0202; 113848b8605Smrg case PIPE_FUNC_LEQUAL: 114848b8605Smrg return 0x0203; 115848b8605Smrg case PIPE_FUNC_GREATER: 116848b8605Smrg return 0x0204; 117848b8605Smrg case PIPE_FUNC_NOTEQUAL: 118848b8605Smrg return 0x0205; 119848b8605Smrg case PIPE_FUNC_GEQUAL: 120848b8605Smrg return 0x0206; 121848b8605Smrg case PIPE_FUNC_ALWAYS: 122848b8605Smrg return 0x0207; 123848b8605Smrg default: 124848b8605Smrg return 0x0207; 125848b8605Smrg } 126848b8605Smrg} 127848b8605Smrg 128b8e80941Smrgstatic inline unsigned 129848b8605Smrgnvgl_polygon_mode(unsigned mode) 130848b8605Smrg{ 131848b8605Smrg switch (mode) { 132848b8605Smrg case PIPE_POLYGON_MODE_POINT: 133848b8605Smrg return 0x1b00; 134848b8605Smrg case PIPE_POLYGON_MODE_LINE: 135848b8605Smrg return 0x1b01; 136848b8605Smrg case PIPE_POLYGON_MODE_FILL: 137848b8605Smrg return 0x1b02; 138848b8605Smrg default: 139848b8605Smrg return 0x1b02; 140848b8605Smrg } 141848b8605Smrg} 142848b8605Smrg 143b8e80941Smrgstatic inline unsigned 144848b8605Smrgnvgl_stencil_op(unsigned op) 145848b8605Smrg{ 146848b8605Smrg switch (op) { 147848b8605Smrg case PIPE_STENCIL_OP_ZERO: 148848b8605Smrg return 0x0000; 149848b8605Smrg case PIPE_STENCIL_OP_INVERT: 150848b8605Smrg return 0x150a; 151848b8605Smrg case PIPE_STENCIL_OP_KEEP: 152848b8605Smrg return 0x1e00; 153848b8605Smrg case PIPE_STENCIL_OP_REPLACE: 154848b8605Smrg return 0x1e01; 155848b8605Smrg case PIPE_STENCIL_OP_INCR: 156848b8605Smrg return 0x1e02; 157848b8605Smrg case PIPE_STENCIL_OP_DECR: 158848b8605Smrg return 0x1e03; 159848b8605Smrg case PIPE_STENCIL_OP_INCR_WRAP: 160848b8605Smrg return 0x8507; 161848b8605Smrg case PIPE_STENCIL_OP_DECR_WRAP: 162848b8605Smrg return 0x8508; 163848b8605Smrg default: 164848b8605Smrg return 0x1e00; 165848b8605Smrg } 166848b8605Smrg} 167848b8605Smrg 168b8e80941Smrgstatic inline unsigned 169848b8605Smrgnvgl_primitive(unsigned prim) { 170848b8605Smrg switch (prim) { 171848b8605Smrg case PIPE_PRIM_POINTS: 172848b8605Smrg return 0x0001; 173848b8605Smrg case PIPE_PRIM_LINES: 174848b8605Smrg return 0x0002; 175848b8605Smrg case PIPE_PRIM_LINE_LOOP: 176848b8605Smrg return 0x0003; 177848b8605Smrg case PIPE_PRIM_LINE_STRIP: 178848b8605Smrg return 0x0004; 179848b8605Smrg case PIPE_PRIM_TRIANGLES: 180848b8605Smrg return 0x0005; 181848b8605Smrg case PIPE_PRIM_TRIANGLE_STRIP: 182848b8605Smrg return 0x0006; 183848b8605Smrg case PIPE_PRIM_TRIANGLE_FAN: 184848b8605Smrg return 0x0007; 185848b8605Smrg case PIPE_PRIM_QUADS: 186848b8605Smrg return 0x0008; 187848b8605Smrg case PIPE_PRIM_QUAD_STRIP: 188848b8605Smrg return 0x0009; 189848b8605Smrg case PIPE_PRIM_POLYGON: 190848b8605Smrg return 0x000a; 191848b8605Smrg default: 192848b8605Smrg return 0; 193848b8605Smrg } 194848b8605Smrg} 195848b8605Smrg 196848b8605Smrg#endif 197