Mercurial > sdl-ios-xcode
view docs/html/sdlsemwait.html @ 1032:c1c2efca4548
Date: Mon, 24 Jan 2005 21:37:56 +0800
From: Chris Taylor
Subject: Patch to put back dynamic OpenGL loading for MPW
I sent a patch a while ago that removes dynamic OpenGL loading for
Macintosh Programmer's Workshop. Dynamic loading DOES actually work
when an SDL program is built with MPW, it just has to be set up for it.
(Whoops!!) This is the ideal way to get OpenGL extensions to work,
which D2X uses quite a few of.
This patch puts dynamic loading back in SDL for Mac OS 9. It applies to
current CVS. I noticed that two members need to be set when
DrawSprocket is used.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 25 Jan 2005 16:57:11 +0000 |
parents | 355632dca928 |
children |
line wrap: on
line source
<HTML ><HEAD ><TITLE >SDL_SemWait</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ "><LINK REL="HOME" TITLE="SDL Library Documentation" HREF="index.html"><LINK REL="UP" TITLE="Multi-threaded Programming" HREF="thread.html"><LINK REL="PREVIOUS" TITLE="SDL_DestroySemaphore" HREF="sdldestroysemaphore.html"><LINK REL="NEXT" TITLE="SDL_SemTryWait" HREF="sdlsemtrywait.html"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFF8DC" TEXT="#000000" LINK="#0000ee" VLINK="#551a8b" ALINK="#ff0000" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >SDL Library Documentation</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="sdldestroysemaphore.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="sdlsemtrywait.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="SDLSEMWAIT" ></A >SDL_SemWait</H1 ><DIV CLASS="REFNAMEDIV" ><A NAME="AEN8023" ></A ><H2 >Name</H2 >SDL_SemWait -- Lock a semaphore and suspend the thread if the semaphore value is zero.</DIV ><DIV CLASS="REFSYNOPSISDIV" ><A NAME="AEN8026" ></A ><H2 >Synopsis</H2 ><DIV CLASS="FUNCSYNOPSIS" ><A NAME="AEN8027" ></A ><P ></P ><PRE CLASS="FUNCSYNOPSISINFO" >#include "SDL.h" #include "SDL_thread.h"</PRE ><P ><CODE ><CODE CLASS="FUNCDEF" >int <B CLASS="FSFUNC" >SDL_SemWait</B ></CODE >(SDL_sem *sem);</CODE ></P ><P ></P ></DIV ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN8033" ></A ><H2 >Description</H2 ><P ><TT CLASS="FUNCTION" >SDL_SemWait()</TT > suspends the calling thread until either the semaphore pointed to by <TT CLASS="PARAMETER" ><I >sem</I ></TT > has a positive value, the call is interrupted by a signal or error. If the call is successful it will atomically decrement the semaphore value.</P ><P >After <TT CLASS="FUNCTION" >SDL_SemWait()</TT > is successful, the semaphore can be released and its count atomically incremented by a successful call to <A HREF="sdlsempost.html" >SDL_SemPost</A >.</P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN8041" ></A ><H2 >Return Value</H2 ><P >Returns <SPAN CLASS="RETURNVALUE" >0</SPAN > if successful or <SPAN CLASS="RETURNVALUE" >-1</SPAN > if there was an error (leaving the semaphore unchanged).</P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN8046" ></A ><H2 >Examples</H2 ><P ><PRE CLASS="PROGRAMLISTING" >if (SDL_SemWait(my_sem) == -1) { return WAIT_FAILED; } ... SDL_SemPost(my_sem);</PRE ></P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN8050" ></A ><H2 >See Also</H2 ><P ><A HREF="sdlcreatesemaphore.html" ><TT CLASS="FUNCTION" >SDL_CreateSemaphore</TT ></A >, <A HREF="sdldestroysemaphore.html" ><TT CLASS="FUNCTION" >SDL_DestroySemaphore</TT ></A >, <A HREF="sdlsemtrywait.html" ><TT CLASS="FUNCTION" >SDL_SemTryWait</TT ></A >, <A HREF="sdlsemwaittimeout.html" ><TT CLASS="FUNCTION" >SDL_SemWaitTimeout</TT ></A >, <A HREF="sdlsempost.html" ><TT CLASS="FUNCTION" >SDL_SemPost</TT ></A >, <A HREF="sdlsemvalue.html" ><TT CLASS="FUNCTION" >SDL_SemValue</TT ></A ></P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="sdldestroysemaphore.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="sdlsemtrywait.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >SDL_DestroySemaphore</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="thread.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >SDL_SemTryWait</TD ></TR ></TABLE ></DIV ></BODY ></HTML >