hedgewars/SDLh.pas
changeset 459 95163c6efa69
parent 433 9f8f22094c0e
child 467 20d36f976b25
equal deleted inserted replaced
458:5880af7b530a 459:95163c6efa69
   381 procedure SDLNet_TCP_Close(sock: PTCPsocket); cdecl; external SDL_NetLibName;
   381 procedure SDLNet_TCP_Close(sock: PTCPsocket); cdecl; external SDL_NetLibName;
   382 procedure SDLNet_FreeSocketSet(_set: PSDLNet_SocketSet); cdecl; external SDL_NetLibName;
   382 procedure SDLNet_FreeSocketSet(_set: PSDLNet_SocketSet); cdecl; external SDL_NetLibName;
   383 function SDLNet_AddSocket(_set: PSDLNet_SocketSet; sock: PTCPSocket): LongInt; cdecl; external SDL_NetLibName;
   383 function SDLNet_AddSocket(_set: PSDLNet_SocketSet; sock: PTCPSocket): LongInt; cdecl; external SDL_NetLibName;
   384 function SDLNet_CheckSockets(_set: PSDLNet_SocketSet; timeout: LongInt): LongInt; cdecl; external SDL_NetLibName;
   384 function SDLNet_CheckSockets(_set: PSDLNet_SocketSet; timeout: LongInt): LongInt; cdecl; external SDL_NetLibName;
   385 
   385 
   386 procedure SDLNet_Write16(value: Word; buf: pointer); cdecl; external SDL_NetLibName;
   386 procedure SDLNet_Write16(value: Word; buf: pointer);
   387 procedure SDLNet_Write32(value: LongWord; buf: pointer); cdecl; external SDL_NetLibName;
   387 procedure SDLNet_Write32(value: LongWord; buf: pointer);
   388 function SDLNet_Read16(buf: pointer): Word; cdecl; external SDL_NetLibName;
   388 function SDLNet_Read16(buf: pointer): Word;
   389 function SDLNet_Read32(buf: pointer): LongWord; cdecl; external SDL_NetLibName;
   389 function SDLNet_Read32(buf: pointer): LongWord;
   390 
   390 
   391 implementation
   391 implementation
   392 
   392 
   393 function SDL_MustLock(Surface: PSDL_Surface): Boolean;
   393 function SDL_MustLock(Surface: PSDL_Surface): Boolean;
   394 begin
   394 begin
   395 SDL_MustLock:= ( surface^.offset <> 0 )
   395 SDL_MustLock:= ( surface^.offset <> 0 )
   396        or(( surface^.flags and (SDL_HWSURFACE or SDL_ASYNCBLIT or SDL_RLEACCEL)) <> 0)
   396        or(( surface^.flags and (SDL_HWSURFACE or SDL_ASYNCBLIT or SDL_RLEACCEL)) <> 0)
   397 end;
   397 end;
   398 
   398 
       
   399 procedure SDLNet_Write16(value: Word; buf: pointer);
       
   400 begin
       
   401 {$IFDEF LITTLE_ENDIAN}
       
   402   PByteArray(buf)^[0]:= value;
       
   403   PByteArray(buf)^[1]:= value shr 8
       
   404 {$ELSE}
       
   405   PByteArray(buf)^[1]:= value;
       
   406   PByteArray(buf)^[0]:= value shr 8
       
   407 {$ENDIF}
       
   408 end;
       
   409 
       
   410 procedure SDLNet_Write32(value: LongWord; buf: pointer);
       
   411 begin
       
   412 {$IFDEF LITTLE_ENDIAN}
       
   413   PByteArray(buf)^[0]:= value;
       
   414   PByteArray(buf)^[1]:= value shr  8;
       
   415   PByteArray(buf)^[2]:= value shr 16;
       
   416   PByteArray(buf)^[3]:= value shr 24
       
   417 {$ELSE}
       
   418   PByteArray(buf)^[3]:= value;
       
   419   PByteArray(buf)^[2]:= value shr  8;
       
   420   PByteArray(buf)^[1]:= value shr 16;
       
   421   PByteArray(buf)^[0]:= value shr 24
       
   422 {$ENDIF}
       
   423 end;
       
   424 
       
   425 function SDLNet_Read16(buf: pointer): Word;
       
   426 begin
       
   427 {$IFDEF LITTLE_ENDIAN}
       
   428   SDLNet_Read16:= PByteArray(buf)^[0] or
       
   429                  (PByteArray(buf)^[1] shl 8)
       
   430 {$ELSE}
       
   431   SDLNet_Read16:= PByteArray(buf)^[1] or
       
   432                  (PByteArray(buf)^[0] shl 8)
       
   433 {$ENDIF}
       
   434 end;
       
   435 
       
   436 function SDLNet_Read32(buf: pointer): LongWord;
       
   437 begin
       
   438 {$IFDEF LITTLE_ENDIAN}
       
   439   SDLNet_Read32:=  PByteArray(buf)^[0] or
       
   440                   (PByteArray(buf)^[1] shl  8) or
       
   441                   (PByteArray(buf)^[2] shl 16) or
       
   442                   (PByteArray(buf)^[3] shl 24)
       
   443 {$ELSE}
       
   444   SDLNet_Read32:=  PByteArray(buf)^[3] or
       
   445                   (PByteArray(buf)^[2] shl  8) or
       
   446                   (PByteArray(buf)^[1] shl 16) or
       
   447                   (PByteArray(buf)^[0] shl 24)
       
   448 {$ENDIF}
       
   449 end;
       
   450 
   399 end.
   451 end.