Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4358 Serge 1
/**************************************************************************
2
 *
3
 * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas.
4
 * All Rights Reserved.
5
 *
6
 * Permission is hereby granted, free of charge, to any person obtaining a
7
 * copy of this software and associated documentation files (the
8
 * "Software"), to deal in the Software without restriction, including
9
 * without limitation the rights to use, copy, modify, merge, publish,
10
 * distribute, sub license, and/or sell copies of the Software, and to
11
 * permit persons to whom the Software is furnished to do so, subject to
12
 * the following conditions:
13
 *
14
 * The above copyright notice and this permission notice (including the
15
 * next paragraph) shall be included in all copies or substantial portions
16
 * of the Software.
17
 *
18
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21
 * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
22
 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23
 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24
 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25
 *
26
 **************************************************************************/
27
 
28
 
29
#include "main/glheader.h"
30
#include "main/context.h"
31
#include "main/macros.h"
32
#include "main/enums.h"
33
#include "main/colormac.h"
34
#include "main/dd.h"
35
 
36
#include "intel_screen.h"
37
#include "intel_context.h"
38
 
39
int
40
intel_translate_shadow_compare_func(GLenum func)
41
{
42
   switch (func) {
43
   case GL_NEVER:
44
       return COMPAREFUNC_ALWAYS;
45
   case GL_LESS:
46
       return COMPAREFUNC_LEQUAL;
47
   case GL_LEQUAL:
48
       return COMPAREFUNC_LESS;
49
   case GL_GREATER:
50
       return COMPAREFUNC_GEQUAL;
51
   case GL_GEQUAL:
52
      return COMPAREFUNC_GREATER;
53
   case GL_NOTEQUAL:
54
      return COMPAREFUNC_EQUAL;
55
   case GL_EQUAL:
56
      return COMPAREFUNC_NOTEQUAL;
57
   case GL_ALWAYS:
58
       return COMPAREFUNC_NEVER;
59
   }
60
 
61
   fprintf(stderr, "Unknown value in %s: %x\n", __FUNCTION__, func);
62
   return COMPAREFUNC_NEVER;
63
}
64
 
65
int
66
intel_translate_compare_func(GLenum func)
67
{
68
   switch (func) {
69
   case GL_NEVER:
70
      return COMPAREFUNC_NEVER;
71
   case GL_LESS:
72
      return COMPAREFUNC_LESS;
73
   case GL_LEQUAL:
74
      return COMPAREFUNC_LEQUAL;
75
   case GL_GREATER:
76
      return COMPAREFUNC_GREATER;
77
   case GL_GEQUAL:
78
      return COMPAREFUNC_GEQUAL;
79
   case GL_NOTEQUAL:
80
      return COMPAREFUNC_NOTEQUAL;
81
   case GL_EQUAL:
82
      return COMPAREFUNC_EQUAL;
83
   case GL_ALWAYS:
84
      return COMPAREFUNC_ALWAYS;
85
   }
86
 
87
   fprintf(stderr, "Unknown value in %s: %x\n", __FUNCTION__, func);
88
   return COMPAREFUNC_ALWAYS;
89
}
90
 
91
int
92
intel_translate_stencil_op(GLenum op)
93
{
94
   switch (op) {
95
   case GL_KEEP:
96
      return STENCILOP_KEEP;
97
   case GL_ZERO:
98
      return STENCILOP_ZERO;
99
   case GL_REPLACE:
100
      return STENCILOP_REPLACE;
101
   case GL_INCR:
102
      return STENCILOP_INCRSAT;
103
   case GL_DECR:
104
      return STENCILOP_DECRSAT;
105
   case GL_INCR_WRAP:
106
      return STENCILOP_INCR;
107
   case GL_DECR_WRAP:
108
      return STENCILOP_DECR;
109
   case GL_INVERT:
110
      return STENCILOP_INVERT;
111
   default:
112
      return STENCILOP_ZERO;
113
   }
114
}
115
 
116
int
117
intel_translate_blend_factor(GLenum factor)
118
{
119
   switch (factor) {
120
   case GL_ZERO:
121
      return BLENDFACT_ZERO;
122
   case GL_SRC_ALPHA:
123
      return BLENDFACT_SRC_ALPHA;
124
   case GL_ONE:
125
      return BLENDFACT_ONE;
126
   case GL_SRC_COLOR:
127
      return BLENDFACT_SRC_COLR;
128
   case GL_ONE_MINUS_SRC_COLOR:
129
      return BLENDFACT_INV_SRC_COLR;
130
   case GL_DST_COLOR:
131
      return BLENDFACT_DST_COLR;
132
   case GL_ONE_MINUS_DST_COLOR:
133
      return BLENDFACT_INV_DST_COLR;
134
   case GL_ONE_MINUS_SRC_ALPHA:
135
      return BLENDFACT_INV_SRC_ALPHA;
136
   case GL_DST_ALPHA:
137
      return BLENDFACT_DST_ALPHA;
138
   case GL_ONE_MINUS_DST_ALPHA:
139
      return BLENDFACT_INV_DST_ALPHA;
140
   case GL_SRC_ALPHA_SATURATE:
141
      return BLENDFACT_SRC_ALPHA_SATURATE;
142
   case GL_CONSTANT_COLOR:
143
      return BLENDFACT_CONST_COLOR;
144
   case GL_ONE_MINUS_CONSTANT_COLOR:
145
      return BLENDFACT_INV_CONST_COLOR;
146
   case GL_CONSTANT_ALPHA:
147
      return BLENDFACT_CONST_ALPHA;
148
   case GL_ONE_MINUS_CONSTANT_ALPHA:
149
      return BLENDFACT_INV_CONST_ALPHA;
150
   }
151
 
152
   fprintf(stderr, "Unknown value in %s: %x\n", __FUNCTION__, factor);
153
   return BLENDFACT_ZERO;
154
}
155
 
156
int
157
intel_translate_logic_op(GLenum opcode)
158
{
159
   switch (opcode) {
160
   case GL_CLEAR:
161
      return LOGICOP_CLEAR;
162
   case GL_AND:
163
      return LOGICOP_AND;
164
   case GL_AND_REVERSE:
165
      return LOGICOP_AND_RVRSE;
166
   case GL_COPY:
167
      return LOGICOP_COPY;
168
   case GL_COPY_INVERTED:
169
      return LOGICOP_COPY_INV;
170
   case GL_AND_INVERTED:
171
      return LOGICOP_AND_INV;
172
   case GL_NOOP:
173
      return LOGICOP_NOOP;
174
   case GL_XOR:
175
      return LOGICOP_XOR;
176
   case GL_OR:
177
      return LOGICOP_OR;
178
   case GL_OR_INVERTED:
179
      return LOGICOP_OR_INV;
180
   case GL_NOR:
181
      return LOGICOP_NOR;
182
   case GL_EQUIV:
183
      return LOGICOP_EQUIV;
184
   case GL_INVERT:
185
      return LOGICOP_INV;
186
   case GL_OR_REVERSE:
187
      return LOGICOP_OR_RVRSE;
188
   case GL_NAND:
189
      return LOGICOP_NAND;
190
   case GL_SET:
191
      return LOGICOP_SET;
192
   default:
193
      return LOGICOP_SET;
194
   }
195
}