make indent

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%402573
This commit is contained in:
Bob Pendleton 2007-07-24 18:46:45 +00:00
parent 3c6eee13ae
commit 7d8af0a113
31 changed files with 817 additions and 738 deletions

View file

@ -7,5 +7,4 @@
#import <Cocoa/Cocoa.h>
@interface SDLMain : NSObject
@end
@ interface SDLMain:NSObject @ end

View file

@ -12,7 +12,8 @@
#include "SDL.h"
int main(int argc, char *argv[])
int
main(int argc, char *argv[])
{
Uint32 initflags = SDL_INIT_VIDEO; /* See documentation for details */
SDL_Surface *screen;
@ -23,8 +24,7 @@ int main(int argc, char *argv[])
/* Initialize the SDL library */
if (SDL_Init(initflags) < 0) {
fprintf(stderr, "Couldn't initialize SDL: %s\n",
SDL_GetError());
fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError());
exit(1);
}

View file

@ -7,8 +7,7 @@
#import <Cocoa/Cocoa.h>
@interface SDLMain : NSObject
- (IBAction)prefsMenu:(id)sender;
@ interface SDLMain: NSObject - (IBAction) prefsMenu:(id) sender;
-(IBAction) newGame:(id) sender;
-(IBAction) openGame:(id) sender;
-(IBAction) saveGame:(id) sender;

View file

@ -12,7 +12,8 @@
#include "SDL.h"
int main(int argc, char *argv[])
int
main(int argc, char *argv[])
{
Uint32 initflags = SDL_INIT_VIDEO; /* See documentation for details */
SDL_Surface *screen;
@ -23,8 +24,7 @@ int main(int argc, char *argv[])
/* Initialize the SDL library */
if (SDL_Init(initflags) < 0) {
fprintf(stderr, "Couldn't initialize SDL: %s\n",
SDL_GetError());
fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError());
exit(1);
}

View file

@ -12,11 +12,7 @@
extern id gController; // instance of this class from nib
// Declare SDL_QuartzWindowDelegate (defined in SDL.framework)
@interface SDL_QuartzWindowDelegate : NSObject
@end
@interface MyController : NSObject
{
@interface SDL_QuartzWindowDelegate: NSObject @ end @ interface MyController:NSObject {
// Interface Builder Outlets
IBOutlet id _framesPerSecond;
IBOutlet id _numSprites;
@ -39,8 +35,8 @@ extern id gController; // instance of this class from nib
int _mouse_x, _mouse_y;
}
// Interface Builder Actions
-(IBAction) changeNumberOfSprites:(id) sender;
-(IBAction) selectUpdateMode:(id) sender;
@end

View file

@ -9,8 +9,7 @@
#import <AppKit/AppKit.h>
@interface MyCustomView : NSQuickDrawView
{
@ interface MyCustomView:NSQuickDrawView {
}
@end

View file

@ -11,17 +11,11 @@
// Be a subclass of SDL_QuartzWindow so SDL will
// handle the redraw problems when minimizing the window
// This class is defined in SDL.framework
@interface SDL_QuartzWindow : NSWindow
@end
@ interface SDL_QuartzWindow:NSWindow @ end
// Also assign SDL_QuartzWindowDelegate to the window
// to perform other tasks. You can subclass this delegate
// if you want to add your own delegation methods
// This class is defined in SDL.framework
@interface SDL_QuartzWindowDelegate : NSObject
@end
@ interface SDL_QuartzWindowDelegate:NSObject @ end
// Declare our custom class
@interface MyCustomWindow : SDL_QuartzWindow
@end
@ interface MyCustomWindow:SDL_QuartzWindow @ end

View file

@ -7,8 +7,8 @@
#import <Cocoa/Cocoa.h>
@interface SDLMain : NSObject
{
@ interface SDLMain:NSObject {
IBOutlet id _controller;
}
@end

View file

@ -9,4 +9,3 @@
#include <Foundation/Foundation.h>
#include <Cocoa/Cocoa.h>

View file

@ -7,5 +7,4 @@
#import <Cocoa/Cocoa.h>
@interface SDLMain : NSObject
@end
@ interface SDLMain:NSObject @ end

View file

@ -59,7 +59,8 @@ GLenum StrMode = GL_VENDOR;
GLboolean moving;
static double mtime(void)
static double
mtime(void)
{
struct timeval tk_time;
struct timezone tz;
@ -69,7 +70,8 @@ static double mtime(void)
return 4294.967296 * tk_time.tv_sec + 0.000001 * tk_time.tv_usec;
}
static double filter(double in, double *save)
static double
filter(double in, double *save)
{
static double k1 = 0.9;
static double k2 = 0.05;
@ -83,14 +85,15 @@ static double filter(double in, double *save)
return (save[1]);
}
void DrawStr(const char *str)
void
DrawStr(const char *str)
{
GLint i = 0;
if(!str) return;
if (!str)
return;
while(str[i])
{
while (str[i]) {
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, str[i]);
i++;
}
@ -185,7 +188,8 @@ Atlantis_Reshape(int width, int height)
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60.0, (GLfloat) width / (GLfloat) height, 20000.0, 300000.0);
gluPerspective(60.0, (GLfloat) width / (GLfloat) height, 20000.0,
300000.0);
glMatrixMode(GL_MODELVIEW);
}
@ -215,8 +219,7 @@ Atlantis_Key(unsigned char key, int x, int y)
Timing = !Timing;
break;
case ' ':
switch(StrMode)
{
switch (StrMode) {
case GL_EXTENSIONS:
StrMode = GL_VENDOR;
break;
@ -248,6 +251,7 @@ Atlantis_Key(unsigned char key, int x, int y)
}
}
}
/*
void Display(void)
{
@ -304,11 +308,11 @@ Atlantis_Display(void)
DrawWhale(&babyWhale);
glPopMatrix();
if(Timing)
{
if (Timing) {
t2 = mtime();
t = t2 - t1;
if(t > 0.0001) t = 1.0 / t;
if (t > 0.0001)
t = 1.0 / t;
glDisable(GL_LIGHTING);
//glDisable(GL_DEPTH_TEST);
@ -322,25 +326,28 @@ Atlantis_Display(void)
glRasterPos2f(5.0, 5.0);
switch(StrMode)
{
switch (StrMode) {
case GL_VENDOR:
sprintf(num_str, "%0.2f Hz, %dx%d, VENDOR: ", filter(t, th), w_win, h_win);
sprintf(num_str, "%0.2f Hz, %dx%d, VENDOR: ", filter(t, th),
w_win, h_win);
DrawStr(num_str);
DrawStr(glGetString(GL_VENDOR));
break;
case GL_RENDERER:
sprintf(num_str, "%0.2f Hz, %dx%d, RENDERER: ", filter(t, th), w_win, h_win);
sprintf(num_str, "%0.2f Hz, %dx%d, RENDERER: ", filter(t, th),
w_win, h_win);
DrawStr(num_str);
DrawStr(glGetString(GL_RENDERER));
break;
case GL_VERSION:
sprintf(num_str, "%0.2f Hz, %dx%d, VERSION: ", filter(t, th), w_win, h_win);
sprintf(num_str, "%0.2f Hz, %dx%d, VERSION: ", filter(t, th),
w_win, h_win);
DrawStr(num_str);
DrawStr(glGetString(GL_VERSION));
break;
case GL_EXTENSIONS:
sprintf(num_str, "%0.2f Hz, %dx%d, EXTENSIONS: ", filter(t, th), w_win, h_win);
sprintf(num_str, "%0.2f Hz, %dx%d, EXTENSIONS: ", filter(t, th),
w_win, h_win);
DrawStr(num_str);
DrawStr(glGetString(GL_EXTENSIONS));
break;

View file

@ -43,7 +43,8 @@
#define WHALESPEED 250.0
typedef struct _fishRec {
typedef struct _fishRec
{
float x, y, z, phi, theta, psi, v;
float xt, yt, zt;
float htail, vtail;

View file

@ -57,8 +57,10 @@ WhalePilot(fishRec * fish)
fish->theta = 0.0;
fish->psi -= 0.5;
fish->x += WHALESPEED * fish->v * cos(fish->psi / RAD) * cos(fish->theta / RAD);
fish->y += WHALESPEED * fish->v * sin(fish->psi / RAD) * cos(fish->theta / RAD);
fish->x +=
WHALESPEED * fish->v * cos(fish->psi / RAD) * cos(fish->theta / RAD);
fish->y +=
WHALESPEED * fish->v * sin(fish->psi / RAD) * cos(fish->theta / RAD);
fish->z += WHALESPEED * fish->v * sin(fish->theta / RAD);
}
@ -152,8 +154,10 @@ SharkPilot(fishRec * fish)
}
}
fish->x += SHARKSPEED * fish->v * cos(fish->psi / RAD) * cos(fish->theta / RAD);
fish->y += SHARKSPEED * fish->v * sin(fish->psi / RAD) * cos(fish->theta / RAD);
fish->x +=
SHARKSPEED * fish->v * cos(fish->psi / RAD) * cos(fish->theta / RAD);
fish->y +=
SHARKSPEED * fish->v * sin(fish->psi / RAD) * cos(fish->theta / RAD);
fish->z += SHARKSPEED * fish->v * sin(fish->theta / RAD);
}

View file

@ -19,7 +19,8 @@ extern void Atlantis_Display ();
static SDL_Surface *gScreen;
static void initAttributes ()
static void
initAttributes()
{
// Setup attributes we want for the OpenGL context
@ -41,18 +42,23 @@ static void initAttributes ()
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, value);
}
static void printAttributes ()
static void
printAttributes()
{
// Print out attributes of the context we created
int nAttr;
int i;
int attr[] = { SDL_GL_RED_SIZE, SDL_GL_BLUE_SIZE, SDL_GL_GREEN_SIZE,
SDL_GL_ALPHA_SIZE, SDL_GL_BUFFER_SIZE, SDL_GL_DEPTH_SIZE };
SDL_GL_ALPHA_SIZE, SDL_GL_BUFFER_SIZE, SDL_GL_DEPTH_SIZE
};
char *desc[] = { "Red size: %d bits\n", "Blue size: %d bits\n", "Green size: %d bits\n",
char *desc[] =
{ "Red size: %d bits\n", "Blue size: %d bits\n",
"Green size: %d bits\n",
"Alpha size: %d bits\n", "Color buffer size: %d bits\n",
"Depth bufer size: %d bits\n" };
"Depth bufer size: %d bits\n"
};
nAttr = sizeof(attr) / sizeof(int);
@ -64,7 +70,8 @@ static void printAttributes ()
}
}
static void createSurface (int fullscreen)
static void
createSurface(int fullscreen)
{
Uint32 flags = 0;
@ -83,19 +90,22 @@ static void createSurface (int fullscreen)
}
}
static void initGL ()
static void
initGL()
{
Atlantis_Init();
Atlantis_Reshape(gScreen->w, gScreen->h);
}
static void drawGL ()
static void
drawGL()
{
Atlantis_Animate();
Atlantis_Display();
}
static void mainLoop ()
static void
mainLoop()
{
SDL_Event event;
int done = 0;
@ -138,8 +148,7 @@ static void mainLoop ()
thenTicks = nowTicks;
if (delay < 0)
delay = 1000 / fps;
}
else {
} else {
thenTicks = SDL_GetTicks();
}
@ -147,16 +156,15 @@ static void mainLoop ()
}
}
int main(int argc, char *argv[])
int
main(int argc, char *argv[])
{
// Init SDL video subsystem
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
fprintf(stderr, "Couldn't initialize SDL: %s\n",
SDL_GetError());
fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError());
exit(1);
}
// Set GL context attributes
initAttributes();

View file

@ -7,5 +7,4 @@
#import <Cocoa/Cocoa.h>
@interface SDLMain : NSObject
@end
@ interface SDLMain:NSObject @ end

View file

@ -12,7 +12,8 @@
#include "SDL.h"
int main(int argc, char *argv[])
int
main(int argc, char *argv[])
{
Uint32 initflags = SDL_INIT_VIDEO; /* See documentation for details */
SDL_Surface *screen;
@ -23,8 +24,7 @@ int main(int argc, char *argv[])
/* Initialize the SDL library */
if (SDL_Init(initflags) < 0) {
fprintf(stderr, "Couldn't initialize SDL: %s\n",
SDL_GetError());
fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError());
exit(1);
}

View file

@ -7,8 +7,7 @@
#import <Cocoa/Cocoa.h>
@interface SDLMain : NSObject
- (IBAction)prefsMenu:(id)sender;
@ interface SDLMain: NSObject - (IBAction) prefsMenu:(id) sender;
-(IBAction) newGame:(id) sender;
-(IBAction) openGame:(id) sender;
-(IBAction) saveGame:(id) sender;

View file

@ -12,7 +12,8 @@
#include "SDL.h"
int main(int argc, char *argv[])
int
main(int argc, char *argv[])
{
Uint32 initflags = SDL_INIT_VIDEO; /* See documentation for details */
SDL_Surface *screen;
@ -23,8 +24,7 @@ int main(int argc, char *argv[])
/* Initialize the SDL library */
if (SDL_Init(initflags) < 0) {
fprintf(stderr, "Couldn't initialize SDL: %s\n",
SDL_GetError());
fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError());
exit(1);
}

View file

@ -12,11 +12,7 @@
extern id gController; // instance of this class from nib
// Declare SDL_QuartzWindowDelegate (defined in SDL.framework)
@interface SDL_QuartzWindowDelegate : NSObject
@end
@interface MyController : NSObject
{
@interface SDL_QuartzWindowDelegate: NSObject @ end @ interface MyController:NSObject {
// Interface Builder Outlets
IBOutlet id _framesPerSecond;
IBOutlet id _numSprites;
@ -39,8 +35,8 @@ extern id gController; // instance of this class from nib
int _mouse_x, _mouse_y;
}
// Interface Builder Actions
-(IBAction) changeNumberOfSprites:(id) sender;
-(IBAction) selectUpdateMode:(id) sender;
@end

View file

@ -9,8 +9,7 @@
#import <AppKit/AppKit.h>
@interface MyCustomView : NSQuickDrawView
{
@ interface MyCustomView:NSQuickDrawView {
}
@end

View file

@ -11,17 +11,11 @@
// Be a subclass of SDL_QuartzWindow so SDL will
// handle the redraw problems when minimizing the window
// This class is defined in SDL.framework
@interface SDL_QuartzWindow : NSWindow
@end
@ interface SDL_QuartzWindow:NSWindow @ end
// Also assign SDL_QuartzWindowDelegate to the window
// to perform other tasks. You can subclass this delegate
// if you want to add your own delegation methods
// This class is defined in SDL.framework
@interface SDL_QuartzWindowDelegate : NSObject
@end
@ interface SDL_QuartzWindowDelegate:NSObject @ end
// Declare our custom class
@interface MyCustomWindow : SDL_QuartzWindow
@end
@ interface MyCustomWindow:SDL_QuartzWindow @ end

View file

@ -7,8 +7,8 @@
#import <Cocoa/Cocoa.h>
@interface SDLMain : NSObject
{
@ interface SDLMain:NSObject {
IBOutlet id _controller;
}
@end

View file

@ -7,5 +7,4 @@
#import <Cocoa/Cocoa.h>
@interface SDLMain : NSObject
@end
@ interface SDLMain:NSObject @ end

View file

@ -59,7 +59,8 @@ GLenum StrMode = GL_VENDOR;
GLboolean moving;
static double mtime(void)
static double
mtime(void)
{
struct timeval tk_time;
struct timezone tz;
@ -69,7 +70,8 @@ static double mtime(void)
return 4294.967296 * tk_time.tv_sec + 0.000001 * tk_time.tv_usec;
}
static double filter(double in, double *save)
static double
filter(double in, double *save)
{
static double k1 = 0.9;
static double k2 = 0.05;
@ -83,14 +85,15 @@ static double filter(double in, double *save)
return (save[1]);
}
void DrawStr(const char *str)
void
DrawStr(const char *str)
{
GLint i = 0;
if(!str) return;
if (!str)
return;
while(str[i])
{
while (str[i]) {
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, str[i]);
i++;
}
@ -185,7 +188,8 @@ Atlantis_Reshape(int width, int height)
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60.0, (GLfloat) width / (GLfloat) height, 20000.0, 300000.0);
gluPerspective(60.0, (GLfloat) width / (GLfloat) height, 20000.0,
300000.0);
glMatrixMode(GL_MODELVIEW);
}
@ -215,8 +219,7 @@ Atlantis_Key(unsigned char key, int x, int y)
Timing = !Timing;
break;
case ' ':
switch(StrMode)
{
switch (StrMode) {
case GL_EXTENSIONS:
StrMode = GL_VENDOR;
break;
@ -248,6 +251,7 @@ Atlantis_Key(unsigned char key, int x, int y)
}
}
}
/*
void Display(void)
{
@ -304,11 +308,11 @@ Atlantis_Display(void)
DrawWhale(&babyWhale);
glPopMatrix();
if(Timing)
{
if (Timing) {
t2 = mtime();
t = t2 - t1;
if(t > 0.0001) t = 1.0 / t;
if (t > 0.0001)
t = 1.0 / t;
glDisable(GL_LIGHTING);
//glDisable(GL_DEPTH_TEST);
@ -322,25 +326,28 @@ Atlantis_Display(void)
glRasterPos2f(5.0, 5.0);
switch(StrMode)
{
switch (StrMode) {
case GL_VENDOR:
sprintf(num_str, "%0.2f Hz, %dx%d, VENDOR: ", filter(t, th), w_win, h_win);
sprintf(num_str, "%0.2f Hz, %dx%d, VENDOR: ", filter(t, th),
w_win, h_win);
DrawStr(num_str);
DrawStr(glGetString(GL_VENDOR));
break;
case GL_RENDERER:
sprintf(num_str, "%0.2f Hz, %dx%d, RENDERER: ", filter(t, th), w_win, h_win);
sprintf(num_str, "%0.2f Hz, %dx%d, RENDERER: ", filter(t, th),
w_win, h_win);
DrawStr(num_str);
DrawStr(glGetString(GL_RENDERER));
break;
case GL_VERSION:
sprintf(num_str, "%0.2f Hz, %dx%d, VERSION: ", filter(t, th), w_win, h_win);
sprintf(num_str, "%0.2f Hz, %dx%d, VERSION: ", filter(t, th),
w_win, h_win);
DrawStr(num_str);
DrawStr(glGetString(GL_VERSION));
break;
case GL_EXTENSIONS:
sprintf(num_str, "%0.2f Hz, %dx%d, EXTENSIONS: ", filter(t, th), w_win, h_win);
sprintf(num_str, "%0.2f Hz, %dx%d, EXTENSIONS: ", filter(t, th),
w_win, h_win);
DrawStr(num_str);
DrawStr(glGetString(GL_EXTENSIONS));
break;

View file

@ -43,7 +43,8 @@
#define WHALESPEED 250.0
typedef struct _fishRec {
typedef struct _fishRec
{
float x, y, z, phi, theta, psi, v;
float xt, yt, zt;
float htail, vtail;

View file

@ -57,8 +57,10 @@ WhalePilot(fishRec * fish)
fish->theta = 0.0;
fish->psi -= 0.5;
fish->x += WHALESPEED * fish->v * cos(fish->psi / RAD) * cos(fish->theta / RAD);
fish->y += WHALESPEED * fish->v * sin(fish->psi / RAD) * cos(fish->theta / RAD);
fish->x +=
WHALESPEED * fish->v * cos(fish->psi / RAD) * cos(fish->theta / RAD);
fish->y +=
WHALESPEED * fish->v * sin(fish->psi / RAD) * cos(fish->theta / RAD);
fish->z += WHALESPEED * fish->v * sin(fish->theta / RAD);
}
@ -152,8 +154,10 @@ SharkPilot(fishRec * fish)
}
}
fish->x += SHARKSPEED * fish->v * cos(fish->psi / RAD) * cos(fish->theta / RAD);
fish->y += SHARKSPEED * fish->v * sin(fish->psi / RAD) * cos(fish->theta / RAD);
fish->x +=
SHARKSPEED * fish->v * cos(fish->psi / RAD) * cos(fish->theta / RAD);
fish->y +=
SHARKSPEED * fish->v * sin(fish->psi / RAD) * cos(fish->theta / RAD);
fish->z += SHARKSPEED * fish->v * sin(fish->theta / RAD);
}

View file

@ -19,7 +19,8 @@ extern void Atlantis_Display ();
static SDL_Surface *gScreen;
static void initAttributes ()
static void
initAttributes()
{
// Setup attributes we want for the OpenGL context
@ -41,18 +42,23 @@ static void initAttributes ()
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, value);
}
static void printAttributes ()
static void
printAttributes()
{
// Print out attributes of the context we created
int nAttr;
int i;
int attr[] = { SDL_GL_RED_SIZE, SDL_GL_BLUE_SIZE, SDL_GL_GREEN_SIZE,
SDL_GL_ALPHA_SIZE, SDL_GL_BUFFER_SIZE, SDL_GL_DEPTH_SIZE };
SDL_GL_ALPHA_SIZE, SDL_GL_BUFFER_SIZE, SDL_GL_DEPTH_SIZE
};
char *desc[] = { "Red size: %d bits\n", "Blue size: %d bits\n", "Green size: %d bits\n",
char *desc[] =
{ "Red size: %d bits\n", "Blue size: %d bits\n",
"Green size: %d bits\n",
"Alpha size: %d bits\n", "Color buffer size: %d bits\n",
"Depth bufer size: %d bits\n" };
"Depth bufer size: %d bits\n"
};
nAttr = sizeof(attr) / sizeof(int);
@ -64,7 +70,8 @@ static void printAttributes ()
}
}
static void createSurface (int fullscreen)
static void
createSurface(int fullscreen)
{
Uint32 flags = 0;
@ -83,19 +90,22 @@ static void createSurface (int fullscreen)
}
}
static void initGL ()
static void
initGL()
{
Atlantis_Init();
Atlantis_Reshape(gScreen->w, gScreen->h);
}
static void drawGL ()
static void
drawGL()
{
Atlantis_Animate();
Atlantis_Display();
}
static void mainLoop ()
static void
mainLoop()
{
SDL_Event event;
int done = 0;
@ -138,8 +148,7 @@ static void mainLoop ()
thenTicks = nowTicks;
if (delay < 0)
delay = 1000 / fps;
}
else {
} else {
thenTicks = SDL_GetTicks();
}
@ -147,16 +156,15 @@ static void mainLoop ()
}
}
int main(int argc, char *argv[])
int
main(int argc, char *argv[])
{
// Init SDL video subsystem
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
fprintf(stderr, "Couldn't initialize SDL: %s\n",
SDL_GetError());
fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError());
exit(1);
}
// Set GL context attributes
initAttributes();

View file

@ -23,6 +23,64 @@
#include "../SDL_sysvideo.h"
#include "SDL_x11video.h"
static int numCmaps = 0;
typedef struct
{
Display *display;
int scrNum;
XStandardColormap cmap;
Visual visual;
} cmapTableEntry;
cmapTableEntry *cmapTable = NULL;
void
X11_TrackColormap(Display * display, int scrNum,
XStandardColormap * cmap, Visual * visual)
{
int i;
cmapTableEntry *newTable = NULL;
/* only tracking DirectColor colormaps because they're the only ones
with gamma ramps */
if (DirectColor != visual->class) {
return;
}
/* search the table to find out if we already have this one. We only
want one entry for each display, screen number, visualid
combination */
for (i = 0; i < numCmaps; i++) {
if (cmapTable[i].display == display &&
cmapTable[i].scrNum == scrNum &&
cmapTable[i].cmap.visualid == cmap->visualid) {
return;
}
}
/* increase the table by one entry. If the table is NULL create the
first entrty */
newTable = SDL_malloc((numCmaps + 1) * sizeof(cmapTableEntry));
if (NULL == newTable) {
SDL_SetError("Out of memory in X11_TrackColormap()");
return;
}
if (NULL != cmapTable) {
SDL_memcpy(newTable, cmapTable, numCmaps * sizeof(cmapTableEntry));
SDL_free(cmapTable);
}
cmapTable = newTable;
cmapTable[numCmaps].display = display;
cmapTable[numCmaps].scrNum = scrNum;
SDL_memcpy(&cmapTable[numCmaps].cmap, cmap, sizeof(XStandardColormap));
SDL_memcpy(&cmapTable[numCmaps].visual, visual, sizeof(Visual));
numCmaps++;
}
int
X11_SetDisplayGammaRamp(_THIS, Uint16 * ramp)
{

View file

@ -24,6 +24,9 @@
#ifndef _SDL_x11gamma_h
#define _SDL_x11gamma_h
extern void X11_TrackColormap(Display * display, int scrNum,
XStandardColormap * cmap, Visual * visual);
extern int X11_SetDisplayGammaRamp(_THIS, Uint16 * ramp);
extern int X11_GetDisplayGammaRamp(_THIS, Uint16 * ramp);

View file

@ -184,22 +184,27 @@ X11_CreateWindow(_THIS, SDL_Window * window)
if (visual->class == DirectColor || visual->class == PseudoColor) {
int nmaps;
XStandardColormap *stdmaps;
int i;
Bool found = False;
/* check to see if the colormap we need already exists */
if (0 != XGetRGBColormaps(data->display,
RootWindow(data->display,
displaydata->screen), &stdmaps,
&nmaps, XA_RGB_BEST_MAP)) {
int i;
for (i = 0; i < nmaps; i++) {
if (stdmaps[i].visualid == visual->visualid) {
xattr.colormap = stdmaps[i].colormap;
X11_TrackColormap(data->display, displaydata->screen,
&stdmaps[i], visual);
found = True;
break;
}
}
XFree(stdmaps);
}
/* it doesn't exist, so create it */
if (!found) {
int max = visual->map_entries - 1;
XStandardColormap *cmap =
@ -207,8 +212,10 @@ X11_CreateWindow(_THIS, SDL_Window * window)
visual->visualid, depth,
XA_RGB_BEST_MAP, None,
max, max, max);
if (cmap->visualid = visual->visualid) {
if (NULL != cmap && cmap->visualid == visual->visualid) {
xattr.colormap = cmap->colormap;
X11_TrackColormap(data->display, displaydata->screen, cmap,
visual);
} else {
SDL_SetError
("Couldn't create window:XA_RGB_BEST_MAP not found");