~mmach/netext73/mesa-haswell

« back to all changes in this revision

Viewing changes to src/mesa/main/menums.h

  • Committer: mmach
  • Date: 2022-09-22 19:56:13 UTC
  • Revision ID: netbit73@gmail.com-20220922195613-wtik9mmy20tmor0i
2022-09-22 21:17:09

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Mesa 3-D graphics library
3
 
 *
4
 
 * Copyright (C) 1999-2008  Brian Paul   All Rights Reserved.
5
 
 * Copyright (C) 2009  VMware, Inc.  All Rights Reserved.
6
 
 * Copyright (C) 2018 Advanced Micro Devices, Inc.  All Rights Reserved.
7
 
 *
8
 
 * Permission is hereby granted, free of charge, to any person obtaining a
9
 
 * copy of this software and associated documentation files (the "Software"),
10
 
 * to deal in the Software without restriction, including without limitation
11
 
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12
 
 * and/or sell copies of the Software, and to permit persons to whom the
13
 
 * Software is furnished to do so, subject to the following conditions:
14
 
 *
15
 
 * The above copyright notice and this permission notice shall be included
16
 
 * in all copies or substantial portions 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 MERCHANTABILITY,
20
 
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
21
 
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
22
 
 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
23
 
 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
 
 * OTHER DEALINGS IN THE SOFTWARE.
25
 
 */
26
 
 
27
 
/**
28
 
 * \file menums.h
29
 
 * Often used definitions and enums.
30
 
 */
31
 
 
32
 
#ifndef MENUMS_H
33
 
#define MENUMS_H
34
 
 
35
 
#include "util/macros.h"
36
 
 
37
 
/**
38
 
 * Enum for the OpenGL APIs we know about and may support.
39
 
 *
40
 
 * NOTE: This must match the api_enum table in
41
 
 * src/mesa/main/get_hash_generator.py
42
 
 */
43
 
typedef enum
44
 
{
45
 
   API_OPENGL_COMPAT,      /* legacy / compatibility contexts */
46
 
   API_OPENGLES,
47
 
   API_OPENGLES2,
48
 
   API_OPENGL_CORE,
49
 
   API_OPENGL_LAST = API_OPENGL_CORE
50
 
} gl_api;
51
 
 
52
 
/**
53
 
 * An index for each type of texture object.  These correspond to the GL
54
 
 * texture target enums, such as GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP, etc.
55
 
 * Note: the order is from highest priority to lowest priority.
56
 
 */
57
 
typedef enum
58
 
{
59
 
   TEXTURE_2D_MULTISAMPLE_INDEX,
60
 
   TEXTURE_2D_MULTISAMPLE_ARRAY_INDEX,
61
 
   TEXTURE_CUBE_ARRAY_INDEX,
62
 
   TEXTURE_BUFFER_INDEX,
63
 
   TEXTURE_2D_ARRAY_INDEX,
64
 
   TEXTURE_1D_ARRAY_INDEX,
65
 
   TEXTURE_EXTERNAL_INDEX,
66
 
   TEXTURE_CUBE_INDEX,
67
 
   TEXTURE_3D_INDEX,
68
 
   TEXTURE_RECT_INDEX,
69
 
   TEXTURE_2D_INDEX,
70
 
   TEXTURE_1D_INDEX,
71
 
   NUM_TEXTURE_TARGETS
72
 
} gl_texture_index;
73
 
 
74
 
/**
75
 
 * Remapped color logical operations
76
 
 *
77
 
 * With the exception of NVIDIA hardware, which consumes the OpenGL enumerants
78
 
 * directly, everything wants this mapping of color logical operations.
79
 
 *
80
 
 * Fun fact: These values are just the bit-reverse of the low-nibble of the GL
81
 
 * enumerant values (i.e., `GL_NOOP & 0x0f` is `b0101' while
82
 
 * \c COLOR_LOGICOP_NOOP is `b1010`).
83
 
 *
84
 
 * Fun fact #2: These values are just an encoding of the operation as a table
85
 
 * of bit values. The result of the logic op is:
86
 
 *
87
 
 *    result_bit = (logic_op >> (2 * src_bit + dst_bit)) & 1
88
 
 *
89
 
 * For the GL enums, the result is:
90
 
 *
91
 
 *    result_bit = logic_op & (1 << (2 * src_bit + dst_bit))
92
 
 */
93
 
enum PACKED gl_logicop_mode {
94
 
   COLOR_LOGICOP_CLEAR = 0,
95
 
   COLOR_LOGICOP_NOR = 1,
96
 
   COLOR_LOGICOP_AND_INVERTED = 2,
97
 
   COLOR_LOGICOP_COPY_INVERTED = 3,
98
 
   COLOR_LOGICOP_AND_REVERSE = 4,
99
 
   COLOR_LOGICOP_INVERT = 5,
100
 
   COLOR_LOGICOP_XOR = 6,
101
 
   COLOR_LOGICOP_NAND = 7,
102
 
   COLOR_LOGICOP_AND = 8,
103
 
   COLOR_LOGICOP_EQUIV = 9,
104
 
   COLOR_LOGICOP_NOOP = 10,
105
 
   COLOR_LOGICOP_OR_INVERTED = 11,
106
 
   COLOR_LOGICOP_COPY = 12,
107
 
   COLOR_LOGICOP_OR_REVERSE = 13,
108
 
   COLOR_LOGICOP_OR = 14,
109
 
   COLOR_LOGICOP_SET = 15
110
 
};
111
 
 
112
 
/**
113
 
 * Indexes for all renderbuffers
114
 
 */
115
 
typedef enum
116
 
{
117
 
   /* the four standard color buffers */
118
 
   BUFFER_FRONT_LEFT,
119
 
   BUFFER_BACK_LEFT,
120
 
   BUFFER_FRONT_RIGHT,
121
 
   BUFFER_BACK_RIGHT,
122
 
   BUFFER_DEPTH,
123
 
   BUFFER_STENCIL,
124
 
   BUFFER_ACCUM,
125
 
   /* generic renderbuffers */
126
 
   BUFFER_COLOR0,
127
 
   BUFFER_COLOR1,
128
 
   BUFFER_COLOR2,
129
 
   BUFFER_COLOR3,
130
 
   BUFFER_COLOR4,
131
 
   BUFFER_COLOR5,
132
 
   BUFFER_COLOR6,
133
 
   BUFFER_COLOR7,
134
 
   BUFFER_COUNT,
135
 
   BUFFER_NONE = -1,
136
 
} gl_buffer_index;
137
 
 
138
 
typedef enum
139
 
{
140
 
   MAP_USER,
141
 
   MAP_INTERNAL,
142
 
   MAP_GLTHREAD,
143
 
   MAP_COUNT
144
 
} gl_map_buffer_index;
145
 
 
146
 
/** @{
147
 
 *
148
 
 * These are a mapping of the GL_ARB_debug_output/GL_KHR_debug enums
149
 
 * to small enums suitable for use as an array index.
150
 
 */
151
 
 
152
 
enum mesa_debug_source
153
 
{
154
 
   MESA_DEBUG_SOURCE_API,
155
 
   MESA_DEBUG_SOURCE_WINDOW_SYSTEM,
156
 
   MESA_DEBUG_SOURCE_SHADER_COMPILER,
157
 
   MESA_DEBUG_SOURCE_THIRD_PARTY,
158
 
   MESA_DEBUG_SOURCE_APPLICATION,
159
 
   MESA_DEBUG_SOURCE_OTHER,
160
 
   MESA_DEBUG_SOURCE_COUNT
161
 
};
162
 
 
163
 
enum mesa_debug_type
164
 
{
165
 
   MESA_DEBUG_TYPE_ERROR,
166
 
   MESA_DEBUG_TYPE_DEPRECATED,
167
 
   MESA_DEBUG_TYPE_UNDEFINED,
168
 
   MESA_DEBUG_TYPE_PORTABILITY,
169
 
   MESA_DEBUG_TYPE_PERFORMANCE,
170
 
   MESA_DEBUG_TYPE_OTHER,
171
 
   MESA_DEBUG_TYPE_MARKER,
172
 
   MESA_DEBUG_TYPE_PUSH_GROUP,
173
 
   MESA_DEBUG_TYPE_POP_GROUP,
174
 
   MESA_DEBUG_TYPE_COUNT
175
 
};
176
 
 
177
 
enum mesa_debug_severity
178
 
{
179
 
   MESA_DEBUG_SEVERITY_LOW,
180
 
   MESA_DEBUG_SEVERITY_MEDIUM,
181
 
   MESA_DEBUG_SEVERITY_HIGH,
182
 
   MESA_DEBUG_SEVERITY_NOTIFICATION,
183
 
   MESA_DEBUG_SEVERITY_COUNT
184
 
};
185
 
 
186
 
/** @} */
187
 
 
188
 
#endif