Mon, 22 Mar 2004 09:38:20 +0000(Said Max Horn on the SDL mailing list...)
Ryan C. Gordon [Mon, 22 Mar 2004 09:38:20 +0000] rev 876
(Said Max Horn on the SDL mailing list...)

Hi folks,

based on Eric Wing's patch, I created the attached patch which fixes
the OpenGL coordinate inversion bug in SDL. It works fine over here on
10.3 with Ryan's test program (which I also attached).

There is another change in it: I removed the "- 1" in the two lines
using CGDisplayPixelsHigh()... while I understand from a logical point
of view why they *should* be correct, I checked the actual values
computed that way, and they were off-by-one. After removing the " - 1",
the returned mouse coordinates are correct. I checked this by moving
the mouse to the screen top/bottom in fullscreen mode, BTW. With the
change, the proper values 0 and 479 are returned (in 640x480 mode).

Sam, you may still want to test on 10.1, it's very simple using Ryan's
minimal test code :-)

Cheers,

Max




(Here is the reproduction case for revision history's sake...)


/*
* To compile:
* gcc -o test test.c `sdl-config --cflags` `sdl-config --libs` -framework OpenGL
*
* --ryan.
*/

#include <stdio.h>
#include "SDL.h"
#include "SDL_opengl.h"

int main(int argc, char **argv)
{
Uint32 flags = SDL_OPENGL /* | SDL_FULLSCREEN */;
SDL_Surface *screen;
SDL_Event event;
int done = 0;
GLfloat ratio;

SDL_Init(SDL_INIT_VIDEO);
SDL_ShowCursor(0);
if ((argv[1]) && (strcmp(argv[1], "--grab") == 0))
SDL_WM_GrabInput(SDL_GRAB_ON);
screen = SDL_SetVideoMode(640, 480, 0, flags);
if (!screen)
return(42);

ratio = ((GLfloat) screen->w) / ((GLfloat) screen->h);
glClearColor( 0.0f, 0.0f, 0.0f, 0.0f );
glClearDepth( 1.0f );
glEnable( GL_DEPTH_TEST );
glDepthFunc( GL_LEQUAL );
glViewport( 0, 0, screen->w, screen->h);
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
gluPerspective( 45.0f, ratio, 0.1f, 100.0f );
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
SDL_GL_SwapBuffers();


// eh, close enough.
#define MAX_X 6.12
#define MAX_Y 4.50

while (!done)
{
int x, y;
GLfloat glx, gly;

if (!SDL_WaitEvent(&event))
break;

switch (event.type)
{
case SDL_KEYUP:
if (event.key.keysym.sym == SDLK_ESCAPE)
done = 1;
break;
}

SDL_GetMouseState(&x, &y);
glx = ((((GLfloat) x) / ((GLfloat) screen->w)) - 0.5f) * MAX_X;
gly = ((((GLfloat) y) / ((GLfloat) screen->h)) - 0.5f) * MAX_Y;

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(glx,-gly,-6.0f);

glBegin(GL_TRIANGLES);
glColor3f(1,0,0); glVertex3f( 0.00f, 0.25f, 0.00f);
glColor3f(0,1,0); glVertex3f(-0.25f, -0.25f, 0.00f);
glColor3f(0,0,1); glVertex3f( 0.25f, -0.25f, 0.00f);
glEnd();

SDL_GL_SwapBuffers();
}

SDL_Quit();
return(0);
}

/* end of test.c ... */

Thu, 11 Mar 2004 13:38:51 +0000Fixed the postinstall script
Sam Lantinga [Thu, 11 Mar 2004 13:38:51 +0000] rev 875
Fixed the postinstall script

Thu, 11 Mar 2004 12:59:41 +0000Date: Thu, 11 Mar 2004 18:45:17 +0900
Sam Lantinga [Thu, 11 Mar 2004 12:59:41 +0000] rev 874
Date: Thu, 11 Mar 2004 18:45:17 +0900
From: Hayashi Naoyuki
Subject: Re: Tru64 cdrom and pthread option fix

I wrote
/* Some CD-ROM drives cannot play the first 150 frames. */
in src/cdrom/osf/SDL_syscdrom.c
and
Some CD-ROM drives(ex. TEAC CD-532E) cannot play first 150 frames(aka gap).

but this is not right.

It is written in MMC that LBA = 4500*M + 75*S + F - 150.

Sun, 07 Mar 2004 16:40:15 +0000Date: Sun, 07 Mar 2004 22:54:11 +0900
Sam Lantinga [Sun, 07 Mar 2004 16:40:15 +0000] rev 873
Date: Sun, 07 Mar 2004 22:54:11 +0900
From: Hayashi Naoyuki
Subject: Tru64 cdrom and pthread option fix

SDL-1.2.7/src/cdrom/osf/SDL_syscdrom.c Fixes
Some CD-ROM drives(ex. TEAC CD-532E) cannot play
first 150 frames(aka gap).
CheckDrive() fix.
The end of comment is "* /" in AddDrive().

SDL-1.2.7/configure.in Fixes
Add *-*-osf pthread option and
delete line SDL_LIBS="$SDL_LIBS -lrt".

Sat, 06 Mar 2004 02:58:06 +0000Date: Fri, 05 Mar 2004 16:08:01 +0000
Sam Lantinga [Sat, 06 Mar 2004 02:58:06 +0000] rev 872
Date: Fri, 05 Mar 2004 16:08:01 +0000
From: Alan Swanson
Subject: Re: [SDL] Fatal signal when initiaize with USB joystick on 2.6.2 kern

On Fri, 2004-03-05 at 15:09, Sam Lantinga wrote:
> > Fred, how does the attached patch work for you? Do all your axes work?
>
> I think you meant the two lines to be reversed.
> I checked a more robust version of this into CVS. Fred, can you see if
> it works?

You've misread the code. :-/

For coef[0] and coef[1], it is (values[2]+values[1]) / 2 and then add
or subtract values[4] to the answer.

Fri, 05 Mar 2004 15:09:18 +0000Avoid FPE with Linux 2.6
Sam Lantinga [Fri, 05 Mar 2004 15:09:18 +0000] rev 871
Avoid FPE with Linux 2.6

Thu, 04 Mar 2004 05:41:57 +0000Date: Wed, 3 Mar 2004 12:44:21 +0200
Sam Lantinga [Thu, 04 Mar 2004 05:41:57 +0000] rev 870
Date: Wed, 3 Mar 2004 12:44:21 +0200
From: "Mike Gorchak"
Subject: Misc fixes again

I've added custom WM info for the QNX (same as generic for now), which allows to compile all applications, which included SDL_syswm.h directly, otherwise DISABLE_X11 appearing to be not defined and X11 info was used instead, which is wrong.

Thu, 04 Mar 2004 05:39:17 +0000Instructive comments from Max Horn
Sam Lantinga [Thu, 04 Mar 2004 05:39:17 +0000] rev 869
Instructive comments from Max Horn

Wed, 03 Mar 2004 06:56:04 +0000sed, it's two, two commands in one!
Sam Lantinga [Wed, 03 Mar 2004 06:56:04 +0000] rev 868
sed, it's two, two commands in one!

Tue, 02 Mar 2004 19:38:55 +0000Force recreation of X11 window if going to or from a SDL_NOFRAME vidmode.
Ryan C. Gordon [Tue, 02 Mar 2004 19:38:55 +0000] rev 867
Force recreation of X11 window if going to or from a SDL_NOFRAME vidmode.