Mercurial > sdl-ios-xcode
view src/events/SDL_active.c @ 1438:1f4f09641645
Date: Sun, 26 Feb 2006 11:25:09 +0900
From: Hayashi Naoyuki
Subject: Re: [SDL] CVS stable again, please update SDL ports
Some problems are caused on Tru64 UNIX.
If applying SDL12-osf1.path, these problems are fixed.
1. configure-script say "recursive mutexes... no" and "pthread
semaphores... no".
checking for pthreads... yes
checking for recursive mutexes... no
checking for pthread semaphores... no
This is because it compiled without pthread_cflags and pthread_lib when
checking recursive mutexes and pthread semaphores.
2. Compiling src/audio/mme/SDL_mmeaudio.c fails.
cc: Severe: ./src/audio/mme/SDL_mmeaudio.c, line 25: Cannot find file
<mme_api.h> specified in #include directive. (noinclfilef)
#include <mme_api.h>
-^
This is because BUILD_CFLAGS is wrong.
3. Compiling src/cdrom/osf/SDL_syscdrom.c fails.
cc: Warning: ./src/cdrom/osf/SDL_syscdrom.c, line 176: Too few actual
parameters in the invocation of the macro "SDL_stack_alloc". (toofewactuals)
cdpath = SDL_stack_alloc(len);
------------------------------------^
cc: Error: ./src/cdrom/osf/SDL_syscdrom.c, line 176: Invalid expression.
(badexpr)
cdpath = SDL_stack_alloc(len);
-----------------^
SDL_stack_alloc is defined in include/SDL_stdinc.h.
#define SDL_stack_alloc(type, count) (type*)alloca(sizeof(type)*count)
4. Linking fails if running configure with --enable-x11-shared=yes.
/usr/ccs/bin/ld:
Warning: Unresolved:
p_XData32
5. Compiling src/video/x11/SDL_x11dyn.c fails if running configure with
--enable-x11-shared=no.
cc: Error: ./src/video/x11/SDL_x11sym.h, line 149: In this statement,
"_SmtBufferOverflow" is not declared. (undeclared)
SDL_X11_SYM(1,void,_SmtBufferOverflow,(Display *dpy,register smtDisplayPtr))
^
cc: Error: ./src/video/x11/SDL_x11sym.h, line 150: In this statement,
"_SmtBufferOverflow" is not declared. (undeclared)
SDL_X11_SYM(1,void,_SmtBufferOverflow,(Display *dpy,register smtDisplayPtr))
^
cc: Error: ./src/video/x11/SDL_x11sym.h, line 150: In this statement,
"_SmtIpError" is not declared. (undeclared)
SDL_X11_SYM(1,void,_SmtIpError,(Display *dpy,register smtDisplayPtr, int))
^
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 26 Feb 2006 04:54:01 +0000 |
parents | d910939febfa |
children | a1b03ba2fcd0 |
line wrap: on
line source
/* SDL - Simple DirectMedia Layer Copyright (C) 1997-2006 Sam Lantinga This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Sam Lantinga slouken@libsdl.org */ #include "SDL_config.h" /* Application focus/iconification handling code for SDL */ #include "SDL_events.h" #include "SDL_events_c.h" /* These are static for our active event handling code */ static Uint8 SDL_appstate = 0; /* Public functions */ int SDL_AppActiveInit(void) { /* Start completely active */ SDL_appstate = (SDL_APPACTIVE|SDL_APPINPUTFOCUS|SDL_APPMOUSEFOCUS); /* That's it! */ return(0); } void SDL_AppActiveQuit(void) { } Uint8 SDL_GetAppState(void) { return(SDL_appstate); } /* This is global for SDL_eventloop.c */ int SDL_PrivateAppActive(Uint8 gain, Uint8 state) { int posted; Uint8 new_state; /* Modify the current state with the given mask */ if ( gain ) { new_state = (SDL_appstate | state); } else { new_state = (SDL_appstate & ~state); } /* Drop events that don't change state */ if ( new_state == SDL_appstate ) { return(0); } /* Update internal active state */ SDL_appstate = new_state; /* Post the event, if desired */ posted = 0; if ( SDL_ProcessEvents[SDL_ACTIVEEVENT] == SDL_ENABLE ) { SDL_Event event; SDL_memset(&event, 0, sizeof(event)); event.type = SDL_ACTIVEEVENT; event.active.gain = gain; event.active.state = state; if ( (SDL_EventOK == NULL) || (*SDL_EventOK)(&event) ) { posted = 1; SDL_PushEvent(&event); } } /* If we lost keyboard focus, post key-up events */ if ( (state & SDL_APPINPUTFOCUS) && !gain ) { SDL_ResetKeyboard(); } return(posted); }