dri/xmlconfig: remove GL types.
This just drops all the GL types from the xmlconfig and use std C types from stdint and stdbool. v2: drop further double and header include. Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -27,8 +27,6 @@
|
||||
* \author Felix Kuehling
|
||||
*/
|
||||
|
||||
#include "main/glheader.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <expat.h>
|
||||
@@ -106,15 +104,15 @@ static const char *__getProgramName () {
|
||||
#endif
|
||||
|
||||
/** \brief Find an option in an option cache with the name as key */
|
||||
static GLuint findOption (const driOptionCache *cache, const char *name) {
|
||||
GLuint len = strlen (name);
|
||||
GLuint size = 1 << cache->tableSize, mask = size - 1;
|
||||
GLuint hash = 0;
|
||||
GLuint i, shift;
|
||||
static uint32_t findOption (const driOptionCache *cache, const char *name) {
|
||||
uint32_t len = strlen (name);
|
||||
uint32_t size = 1 << cache->tableSize, mask = size - 1;
|
||||
uint32_t hash = 0;
|
||||
uint32_t i, shift;
|
||||
|
||||
/* compute a hash from the variable length name */
|
||||
for (i = 0, shift = 0; i < len; ++i, shift = (shift+8) & 31)
|
||||
hash += (GLuint)name[i] << shift;
|
||||
hash += (uint32_t)name[i] << shift;
|
||||
hash *= hash;
|
||||
hash = (hash >> (16-cache->tableSize/2)) & mask;
|
||||
|
||||
@@ -134,7 +132,7 @@ static GLuint findOption (const driOptionCache *cache, const char *name) {
|
||||
|
||||
/** \brief Like strdup but using malloc and with error checking. */
|
||||
#define XSTRDUP(dest,source) do { \
|
||||
GLuint len = strlen (source); \
|
||||
uint32_t len = strlen (source); \
|
||||
if (!(dest = malloc(len+1))) { \
|
||||
fprintf (stderr, "%s: %d: out of memory.\n", __FILE__, __LINE__); \
|
||||
abort(); \
|
||||
@@ -146,8 +144,8 @@ static int compare (const void *a, const void *b) {
|
||||
return strcmp (*(char *const*)a, *(char *const*)b);
|
||||
}
|
||||
/** \brief Binary search in a string array. */
|
||||
static GLuint bsearchStr (const XML_Char *name,
|
||||
const XML_Char *elems[], GLuint count) {
|
||||
static uint32_t bsearchStr (const XML_Char *name,
|
||||
const XML_Char *elems[], uint32_t count) {
|
||||
const XML_Char **found;
|
||||
found = bsearch (&name, elems, count, sizeof (XML_Char *), compare);
|
||||
if (found)
|
||||
@@ -165,11 +163,11 @@ static GLuint bsearchStr (const XML_Char *name,
|
||||
* returning tail points to the first character that is not part of
|
||||
* the integer number. If no number was found then tail points to the
|
||||
* start of the input string. */
|
||||
static GLint strToI (const XML_Char *string, const XML_Char **tail, int base) {
|
||||
GLint radix = base == 0 ? 10 : base;
|
||||
GLint result = 0;
|
||||
GLint sign = 1;
|
||||
GLboolean numberFound = GL_FALSE;
|
||||
static int strToI (const XML_Char *string, const XML_Char **tail, int base) {
|
||||
int radix = base == 0 ? 10 : base;
|
||||
int result = 0;
|
||||
int sign = 1;
|
||||
bool numberFound = false;
|
||||
const XML_Char *start = string;
|
||||
|
||||
assert (radix >= 2 && radix <= 36);
|
||||
@@ -180,7 +178,7 @@ static GLint strToI (const XML_Char *string, const XML_Char **tail, int base) {
|
||||
} else if (*string == '+')
|
||||
string++;
|
||||
if (base == 0 && *string == '0') {
|
||||
numberFound = GL_TRUE;
|
||||
numberFound = true;
|
||||
if (*(string+1) == 'x' || *(string+1) == 'X') {
|
||||
radix = 16;
|
||||
string += 2;
|
||||
@@ -190,7 +188,7 @@ static GLint strToI (const XML_Char *string, const XML_Char **tail, int base) {
|
||||
}
|
||||
}
|
||||
do {
|
||||
GLint digit = -1;
|
||||
int digit = -1;
|
||||
if (radix <= 10) {
|
||||
if (*string >= '0' && *string < '0' + radix)
|
||||
digit = *string - '0';
|
||||
@@ -203,12 +201,12 @@ static GLint strToI (const XML_Char *string, const XML_Char **tail, int base) {
|
||||
digit = *string - 'A' + 10;
|
||||
}
|
||||
if (digit != -1) {
|
||||
numberFound = GL_TRUE;
|
||||
numberFound = true;
|
||||
result = radix*result + digit;
|
||||
string++;
|
||||
} else
|
||||
break;
|
||||
} while (GL_TRUE);
|
||||
} while (true);
|
||||
*tail = numberFound ? string : start;
|
||||
return sign * result;
|
||||
}
|
||||
@@ -225,9 +223,9 @@ static GLint strToI (const XML_Char *string, const XML_Char **tail, int base) {
|
||||
* to the start of the input string.
|
||||
*
|
||||
* Uses two passes for maximum accuracy. */
|
||||
static GLfloat strToF (const XML_Char *string, const XML_Char **tail) {
|
||||
GLint nDigits = 0, pointPos, exponent;
|
||||
GLfloat sign = 1.0f, result = 0.0f, scale;
|
||||
static float strToF (const XML_Char *string, const XML_Char **tail) {
|
||||
int nDigits = 0, pointPos, exponent;
|
||||
float sign = 1.0f, result = 0.0f, scale;
|
||||
const XML_Char *start = string, *numStart;
|
||||
|
||||
/* sign */
|
||||
@@ -270,13 +268,13 @@ static GLfloat strToF (const XML_Char *string, const XML_Char **tail) {
|
||||
string = numStart;
|
||||
|
||||
/* scale of the first digit */
|
||||
scale = sign * (GLfloat)pow (10.0, (GLdouble)(pointPos-1 + exponent));
|
||||
scale = sign * (float)pow (10.0, (double)(pointPos-1 + exponent));
|
||||
|
||||
/* second pass: parse digits */
|
||||
do {
|
||||
if (*string != '.') {
|
||||
assert (*string >= '0' && *string <= '9');
|
||||
result += scale * (GLfloat)(*string - '0');
|
||||
result += scale * (float)(*string - '0');
|
||||
scale *= 0.1f;
|
||||
nDigits--;
|
||||
}
|
||||
@@ -287,7 +285,7 @@ static GLfloat strToF (const XML_Char *string, const XML_Char **tail) {
|
||||
}
|
||||
|
||||
/** \brief Parse a value of a given type. */
|
||||
static GLboolean parseValue (driOptionValue *v, driOptionType type,
|
||||
static bool parseValue (driOptionValue *v, driOptionType type,
|
||||
const XML_Char *string) {
|
||||
const XML_Char *tail = NULL;
|
||||
/* skip leading white-space */
|
||||
@@ -295,14 +293,14 @@ static GLboolean parseValue (driOptionValue *v, driOptionType type,
|
||||
switch (type) {
|
||||
case DRI_BOOL:
|
||||
if (!strcmp (string, "false")) {
|
||||
v->_bool = GL_FALSE;
|
||||
v->_bool = false;
|
||||
tail = string + 5;
|
||||
} else if (!strcmp (string, "true")) {
|
||||
v->_bool = GL_TRUE;
|
||||
v->_bool = true;
|
||||
tail = string + 4;
|
||||
}
|
||||
else
|
||||
return GL_FALSE;
|
||||
return false;
|
||||
break;
|
||||
case DRI_ENUM: /* enum is just a special integer */
|
||||
case DRI_INT:
|
||||
@@ -314,20 +312,20 @@ static GLboolean parseValue (driOptionValue *v, driOptionType type,
|
||||
}
|
||||
|
||||
if (tail == string)
|
||||
return GL_FALSE; /* empty string (or containing only white-space) */
|
||||
return false; /* empty string (or containing only white-space) */
|
||||
/* skip trailing white space */
|
||||
if (*tail)
|
||||
tail += strspn (tail, " \f\n\r\t\v");
|
||||
if (*tail)
|
||||
return GL_FALSE; /* something left over that is not part of value */
|
||||
return false; /* something left over that is not part of value */
|
||||
|
||||
return GL_TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
/** \brief Parse a list of ranges of type info->type. */
|
||||
static GLboolean parseRanges (driOptionInfo *info, const XML_Char *string) {
|
||||
static bool parseRanges (driOptionInfo *info, const XML_Char *string) {
|
||||
XML_Char *cp, *range;
|
||||
GLuint nRanges, i;
|
||||
uint32_t nRanges, i;
|
||||
driOptionRange *ranges;
|
||||
|
||||
XSTRDUP (cp, string);
|
||||
@@ -375,39 +373,39 @@ static GLboolean parseRanges (driOptionInfo *info, const XML_Char *string) {
|
||||
free(cp);
|
||||
if (i < nRanges) {
|
||||
free(ranges);
|
||||
return GL_FALSE;
|
||||
return false;
|
||||
} else
|
||||
assert (range == NULL);
|
||||
|
||||
info->nRanges = nRanges;
|
||||
info->ranges = ranges;
|
||||
return GL_TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
/** \brief Check if a value is in one of info->ranges. */
|
||||
static GLboolean checkValue (const driOptionValue *v, const driOptionInfo *info) {
|
||||
GLuint i;
|
||||
static bool checkValue (const driOptionValue *v, const driOptionInfo *info) {
|
||||
uint32_t i;
|
||||
assert (info->type != DRI_BOOL); /* should be caught by the parser */
|
||||
if (info->nRanges == 0)
|
||||
return GL_TRUE;
|
||||
return true;
|
||||
switch (info->type) {
|
||||
case DRI_ENUM: /* enum is just a special integer */
|
||||
case DRI_INT:
|
||||
for (i = 0; i < info->nRanges; ++i)
|
||||
if (v->_int >= info->ranges[i].start._int &&
|
||||
v->_int <= info->ranges[i].end._int)
|
||||
return GL_TRUE;
|
||||
return true;
|
||||
break;
|
||||
case DRI_FLOAT:
|
||||
for (i = 0; i < info->nRanges; ++i)
|
||||
if (v->_float >= info->ranges[i].start._float &&
|
||||
v->_float <= info->ranges[i].end._float)
|
||||
return GL_TRUE;
|
||||
return true;
|
||||
break;
|
||||
default:
|
||||
assert (0); /* should never happen */
|
||||
}
|
||||
return GL_FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -478,11 +476,11 @@ struct OptInfoData {
|
||||
const char *name;
|
||||
XML_Parser parser;
|
||||
driOptionCache *cache;
|
||||
GLboolean inDriInfo;
|
||||
GLboolean inSection;
|
||||
GLboolean inDesc;
|
||||
GLboolean inOption;
|
||||
GLboolean inEnum;
|
||||
bool inDriInfo;
|
||||
bool inSection;
|
||||
bool inDesc;
|
||||
bool inOption;
|
||||
bool inEnum;
|
||||
int curOption;
|
||||
};
|
||||
|
||||
@@ -500,10 +498,10 @@ static const XML_Char *OptInfoElems[] = {
|
||||
* for external configuration tools.
|
||||
*/
|
||||
static void parseEnumAttr (struct OptInfoData *data, const XML_Char **attr) {
|
||||
GLuint i;
|
||||
uint32_t i;
|
||||
const XML_Char *value = NULL, *text = NULL;
|
||||
driOptionValue v;
|
||||
GLuint opt = data->curOption;
|
||||
uint32_t opt = data->curOption;
|
||||
for (i = 0; attr[i]; i += 2) {
|
||||
if (!strcmp (attr[i], "value")) value = attr[i+1];
|
||||
else if (!strcmp (attr[i], "text")) text = attr[i+1];
|
||||
@@ -523,7 +521,7 @@ static void parseEnumAttr (struct OptInfoData *data, const XML_Char **attr) {
|
||||
* for external configuration tools.
|
||||
*/
|
||||
static void parseDescAttr (struct OptInfoData *data, const XML_Char **attr) {
|
||||
GLuint i;
|
||||
uint32_t i;
|
||||
const XML_Char *lang = NULL, *text = NULL;
|
||||
for (i = 0; attr[i]; i += 2) {
|
||||
if (!strcmp (attr[i], "lang")) lang = attr[i+1];
|
||||
@@ -541,9 +539,9 @@ static void parseOptInfoAttr (struct OptInfoData *data, const XML_Char **attr) {
|
||||
const XML_Char *attrVal[OA_COUNT] = {NULL, NULL, NULL, NULL};
|
||||
const char *defaultVal;
|
||||
driOptionCache *cache = data->cache;
|
||||
GLuint opt, i;
|
||||
uint32_t opt, i;
|
||||
for (i = 0; attr[i]; i += 2) {
|
||||
GLuint attrName = bsearchStr (attr[i], optAttr, OA_COUNT);
|
||||
uint32_t attrName = bsearchStr (attr[i], optAttr, OA_COUNT);
|
||||
if (attrName >= OA_COUNT)
|
||||
XML_FATAL ("illegal option attribute: %s", attr[i]);
|
||||
attrVal[attrName] = attr[i+1];
|
||||
@@ -608,7 +606,7 @@ static void optInfoStartElem (void *userData, const XML_Char *name,
|
||||
XML_FATAL1 ("nested <driinfo> elements.");
|
||||
if (attr[0])
|
||||
XML_FATAL1 ("attributes specified on <driinfo> element.");
|
||||
data->inDriInfo = GL_TRUE;
|
||||
data->inDriInfo = true;
|
||||
break;
|
||||
case OI_SECTION:
|
||||
if (!data->inDriInfo)
|
||||
@@ -617,14 +615,14 @@ static void optInfoStartElem (void *userData, const XML_Char *name,
|
||||
XML_FATAL1 ("nested <section> elements.");
|
||||
if (attr[0])
|
||||
XML_FATAL1 ("attributes specified on <section> element.");
|
||||
data->inSection = GL_TRUE;
|
||||
data->inSection = true;
|
||||
break;
|
||||
case OI_DESCRIPTION:
|
||||
if (!data->inSection && !data->inOption)
|
||||
XML_FATAL1 ("<description> must be inside <description> or <option.");
|
||||
if (data->inDesc)
|
||||
XML_FATAL1 ("nested <description> elements.");
|
||||
data->inDesc = GL_TRUE;
|
||||
data->inDesc = true;
|
||||
parseDescAttr (data, attr);
|
||||
break;
|
||||
case OI_OPTION:
|
||||
@@ -634,7 +632,7 @@ static void optInfoStartElem (void *userData, const XML_Char *name,
|
||||
XML_FATAL1 ("<option> nested in <description> element.");
|
||||
if (data->inOption)
|
||||
XML_FATAL1 ("nested <option> elements.");
|
||||
data->inOption = GL_TRUE;
|
||||
data->inOption = true;
|
||||
parseOptInfoAttr (data, attr);
|
||||
break;
|
||||
case OI_ENUM:
|
||||
@@ -642,7 +640,7 @@ static void optInfoStartElem (void *userData, const XML_Char *name,
|
||||
XML_FATAL1 ("<enum> must be inside <option> and <description>.");
|
||||
if (data->inEnum)
|
||||
XML_FATAL1 ("nested <enum> elements.");
|
||||
data->inEnum = GL_TRUE;
|
||||
data->inEnum = true;
|
||||
parseEnumAttr (data, attr);
|
||||
break;
|
||||
default:
|
||||
@@ -656,19 +654,19 @@ static void optInfoEndElem (void *userData, const XML_Char *name) {
|
||||
enum OptInfoElem elem = bsearchStr (name, OptInfoElems, OI_COUNT);
|
||||
switch (elem) {
|
||||
case OI_DRIINFO:
|
||||
data->inDriInfo = GL_FALSE;
|
||||
data->inDriInfo = false;
|
||||
break;
|
||||
case OI_SECTION:
|
||||
data->inSection = GL_FALSE;
|
||||
data->inSection = false;
|
||||
break;
|
||||
case OI_DESCRIPTION:
|
||||
data->inDesc = GL_FALSE;
|
||||
data->inDesc = false;
|
||||
break;
|
||||
case OI_OPTION:
|
||||
data->inOption = GL_FALSE;
|
||||
data->inOption = false;
|
||||
break;
|
||||
case OI_ENUM:
|
||||
data->inEnum = GL_FALSE;
|
||||
data->inEnum = false;
|
||||
break;
|
||||
default:
|
||||
assert (0); /* should have been caught by StartElem */
|
||||
@@ -699,11 +697,11 @@ void driParseOptionInfo (driOptionCache *info, const char *configOptions) {
|
||||
userData.name = "__driConfigOptions";
|
||||
userData.parser = p;
|
||||
userData.cache = info;
|
||||
userData.inDriInfo = GL_FALSE;
|
||||
userData.inSection = GL_FALSE;
|
||||
userData.inDesc = GL_FALSE;
|
||||
userData.inOption = GL_FALSE;
|
||||
userData.inEnum = GL_FALSE;
|
||||
userData.inDriInfo = false;
|
||||
userData.inSection = false;
|
||||
userData.inDesc = false;
|
||||
userData.inOption = false;
|
||||
userData.inEnum = false;
|
||||
userData.curOption = -1;
|
||||
|
||||
status = XML_Parse (p, configOptions, strlen (configOptions), 1);
|
||||
@@ -718,14 +716,14 @@ struct OptConfData {
|
||||
const char *name;
|
||||
XML_Parser parser;
|
||||
driOptionCache *cache;
|
||||
GLint screenNum;
|
||||
int screenNum;
|
||||
const char *driverName, *execName;
|
||||
GLuint ignoringDevice;
|
||||
GLuint ignoringApp;
|
||||
GLuint inDriConf;
|
||||
GLuint inDevice;
|
||||
GLuint inApp;
|
||||
GLuint inOption;
|
||||
uint32_t ignoringDevice;
|
||||
uint32_t ignoringApp;
|
||||
uint32_t inDriConf;
|
||||
uint32_t inDevice;
|
||||
uint32_t inApp;
|
||||
uint32_t inOption;
|
||||
};
|
||||
|
||||
/** \brief Elements in configuration files. */
|
||||
@@ -738,7 +736,7 @@ static const XML_Char *OptConfElems[] = {
|
||||
|
||||
/** \brief Parse attributes of a device element. */
|
||||
static void parseDeviceAttr (struct OptConfData *data, const XML_Char **attr) {
|
||||
GLuint i;
|
||||
uint32_t i;
|
||||
const XML_Char *driver = NULL, *screen = NULL;
|
||||
for (i = 0; attr[i]; i += 2) {
|
||||
if (!strcmp (attr[i], "driver")) driver = attr[i+1];
|
||||
@@ -758,7 +756,7 @@ static void parseDeviceAttr (struct OptConfData *data, const XML_Char **attr) {
|
||||
|
||||
/** \brief Parse attributes of an application element. */
|
||||
static void parseAppAttr (struct OptConfData *data, const XML_Char **attr) {
|
||||
GLuint i;
|
||||
uint32_t i;
|
||||
const XML_Char *exec = NULL;
|
||||
for (i = 0; attr[i]; i += 2) {
|
||||
if (!strcmp (attr[i], "name")) /* not needed here */;
|
||||
@@ -771,7 +769,7 @@ static void parseAppAttr (struct OptConfData *data, const XML_Char **attr) {
|
||||
|
||||
/** \brief Parse attributes of an option element. */
|
||||
static void parseOptConfAttr (struct OptConfData *data, const XML_Char **attr) {
|
||||
GLuint i;
|
||||
uint32_t i;
|
||||
const XML_Char *name = NULL, *value = NULL;
|
||||
for (i = 0; attr[i]; i += 2) {
|
||||
if (!strcmp (attr[i], "name")) name = attr[i+1];
|
||||
@@ -782,7 +780,7 @@ static void parseOptConfAttr (struct OptConfData *data, const XML_Char **attr) {
|
||||
if (!value) XML_WARNING1 ("value attribute missing in option.");
|
||||
if (name && value) {
|
||||
driOptionCache *cache = data->cache;
|
||||
GLuint opt = findOption (cache, name);
|
||||
uint32_t opt = findOption (cache, name);
|
||||
if (cache->info[opt].name == NULL)
|
||||
/* don't use XML_WARNING, drirc defines options for all drivers,
|
||||
* but not all drivers support them */
|
||||
@@ -918,10 +916,10 @@ static void parseOneConfigFile (XML_Parser p) {
|
||||
}
|
||||
|
||||
void driParseConfigFiles (driOptionCache *cache, const driOptionCache *info,
|
||||
GLint screenNum, const char *driverName) {
|
||||
int screenNum, const char *driverName) {
|
||||
char *filenames[2] = {"/etc/drirc", NULL};
|
||||
char *home;
|
||||
GLuint i;
|
||||
uint32_t i;
|
||||
struct OptConfData userData;
|
||||
|
||||
initOptionCache (cache, info);
|
||||
@@ -932,7 +930,7 @@ void driParseConfigFiles (driOptionCache *cache, const driOptionCache *info,
|
||||
userData.execName = GET_PROGRAM_NAME();
|
||||
|
||||
if ((home = getenv ("HOME"))) {
|
||||
GLuint len = strlen (home);
|
||||
uint32_t len = strlen (home);
|
||||
filenames[1] = malloc(len + 7+1);
|
||||
if (filenames[1] == NULL)
|
||||
__driUtilMessage ("Can't allocate memory for %s/.drirc.", home);
|
||||
@@ -969,7 +967,7 @@ void driParseConfigFiles (driOptionCache *cache, const driOptionCache *info,
|
||||
void driDestroyOptionInfo (driOptionCache *info) {
|
||||
driDestroyOptionCache (info);
|
||||
if (info->info) {
|
||||
GLuint i, size = 1 << info->tableSize;
|
||||
uint32_t i, size = 1 << info->tableSize;
|
||||
for (i = 0; i < size; ++i) {
|
||||
if (info->info[i].name) {
|
||||
free(info->info[i].name);
|
||||
@@ -984,30 +982,30 @@ void driDestroyOptionCache (driOptionCache *cache) {
|
||||
free(cache->values);
|
||||
}
|
||||
|
||||
GLboolean driCheckOption (const driOptionCache *cache, const char *name,
|
||||
bool driCheckOption (const driOptionCache *cache, const char *name,
|
||||
driOptionType type) {
|
||||
GLuint i = findOption (cache, name);
|
||||
uint32_t i = findOption (cache, name);
|
||||
return cache->info[i].name != NULL && cache->info[i].type == type;
|
||||
}
|
||||
|
||||
GLboolean driQueryOptionb (const driOptionCache *cache, const char *name) {
|
||||
GLuint i = findOption (cache, name);
|
||||
bool driQueryOptionb (const driOptionCache *cache, const char *name) {
|
||||
uint32_t i = findOption (cache, name);
|
||||
/* make sure the option is defined and has the correct type */
|
||||
assert (cache->info[i].name != NULL);
|
||||
assert (cache->info[i].type == DRI_BOOL);
|
||||
return cache->values[i]._bool;
|
||||
}
|
||||
|
||||
GLint driQueryOptioni (const driOptionCache *cache, const char *name) {
|
||||
GLuint i = findOption (cache, name);
|
||||
int driQueryOptioni (const driOptionCache *cache, const char *name) {
|
||||
uint32_t i = findOption (cache, name);
|
||||
/* make sure the option is defined and has the correct type */
|
||||
assert (cache->info[i].name != NULL);
|
||||
assert (cache->info[i].type == DRI_INT || cache->info[i].type == DRI_ENUM);
|
||||
return cache->values[i]._int;
|
||||
}
|
||||
|
||||
GLfloat driQueryOptionf (const driOptionCache *cache, const char *name) {
|
||||
GLuint i = findOption (cache, name);
|
||||
float driQueryOptionf (const driOptionCache *cache, const char *name) {
|
||||
uint32_t i = findOption (cache, name);
|
||||
/* make sure the option is defined and has the correct type */
|
||||
assert (cache->info[i].name != NULL);
|
||||
assert (cache->info[i].type == DRI_FLOAT);
|
||||
|
||||
@@ -30,6 +30,8 @@
|
||||
#ifndef __XMLCONFIG_H
|
||||
#define __XMLCONFIG_H
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
/** \brief Option data types */
|
||||
typedef enum driOptionType {
|
||||
DRI_BOOL, DRI_ENUM, DRI_INT, DRI_FLOAT
|
||||
@@ -37,9 +39,9 @@ typedef enum driOptionType {
|
||||
|
||||
/** \brief Option value */
|
||||
typedef union driOptionValue {
|
||||
GLboolean _bool; /**< \brief Boolean */
|
||||
GLint _int; /**< \brief Integer or Enum */
|
||||
GLfloat _float; /**< \brief Floating-point */
|
||||
bool _bool; /**< \brief Boolean */
|
||||
int _int; /**< \brief Integer or Enum */
|
||||
float _float; /**< \brief Floating-point */
|
||||
} driOptionValue;
|
||||
|
||||
/** \brief Single range of valid values
|
||||
@@ -55,7 +57,7 @@ typedef struct driOptionInfo {
|
||||
char *name; /**< \brief Name */
|
||||
driOptionType type; /**< \brief Type */
|
||||
driOptionRange *ranges; /**< \brief Array of ranges */
|
||||
GLuint nRanges; /**< \brief Number of ranges */
|
||||
uint nRanges; /**< \brief Number of ranges */
|
||||
} driOptionInfo;
|
||||
|
||||
/** \brief Option cache
|
||||
@@ -73,7 +75,7 @@ typedef struct driOptionCache {
|
||||
* \li Default values in screen
|
||||
* \li Actual values in contexts
|
||||
*/
|
||||
GLuint tableSize;
|
||||
uint tableSize;
|
||||
/**< \brief Size of the arrays
|
||||
*
|
||||
* In the current implementation it's not actually a size but log2(size).
|
||||
@@ -98,7 +100,7 @@ void driParseOptionInfo (driOptionCache *info,
|
||||
* To be called in <driver>CreateContext. screenNum and driverName select
|
||||
* device sections. */
|
||||
void driParseConfigFiles (driOptionCache *cache, const driOptionCache *info,
|
||||
GLint screenNum, const char *driverName);
|
||||
int screenNum, const char *driverName);
|
||||
/** \brief Destroy option info
|
||||
*
|
||||
* To be called in <driver>DestroyScreen */
|
||||
@@ -109,14 +111,14 @@ void driDestroyOptionInfo (driOptionCache *info);
|
||||
void driDestroyOptionCache (driOptionCache *cache);
|
||||
|
||||
/** \brief Check if there exists a certain option */
|
||||
GLboolean driCheckOption (const driOptionCache *cache, const char *name,
|
||||
bool driCheckOption (const driOptionCache *cache, const char *name,
|
||||
driOptionType type);
|
||||
|
||||
/** \brief Query a boolean option value */
|
||||
GLboolean driQueryOptionb (const driOptionCache *cache, const char *name);
|
||||
bool driQueryOptionb (const driOptionCache *cache, const char *name);
|
||||
/** \brief Query an integer option value */
|
||||
GLint driQueryOptioni (const driOptionCache *cache, const char *name);
|
||||
int driQueryOptioni (const driOptionCache *cache, const char *name);
|
||||
/** \brief Query a floating-point option value */
|
||||
GLfloat driQueryOptionf (const driOptionCache *cache, const char *name);
|
||||
float driQueryOptionf (const driOptionCache *cache, const char *name);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user