596 procedure chFullScr(var s: shortstring); |
596 procedure chFullScr(var s: shortstring); |
597 var flags: Longword = 0; |
597 var flags: Longword = 0; |
598 {$IFDEF DEBUGFILE} |
598 {$IFDEF DEBUGFILE} |
599 buf: array[byte] of char; |
599 buf: array[byte] of char; |
600 {$ENDIF} |
600 {$ENDIF} |
601 begin |
601 {$IFDEF SDL13} |
602 if Length(s) = 0 then cFullScreen:= not cFullScreen |
602 windowID: TSDL_WindowID; |
|
603 {$ENDIF} |
|
604 begin |
|
605 if Length(s) = 0 then cFullScreen:= not cFullScreen |
603 else cFullScreen:= s = '1'; |
606 else cFullScreen:= s = '1'; |
604 |
607 |
605 {$IFDEF DEBUGFILE} |
608 {$IFDEF DEBUGFILE} |
606 AddFileLog('Prepare to change video parameters...'); |
609 AddFileLog('Prepare to change video parameters...'); |
607 {$ENDIF} |
610 {$ENDIF} |
608 |
611 |
|
612 flags:= SDL_OPENGL;// or SDL_RESIZABLE; |
609 {$IFDEF IPHONEOS} |
613 {$IFDEF IPHONEOS} |
610 SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 0); |
614 // remove the topbar from the iPhone |
611 SDL_GL_SetAttribute(SDL_GL_RETAINED_BACKING, 1); |
615 flags:= flags or SDL_NOFRAME; |
612 SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 0); |
616 {$ENDIF} |
613 SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8); |
617 |
614 SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8); |
618 if cFullScreen then |
615 SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8); |
619 begin |
616 SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8); |
620 flags:= flags or SDL_FULLSCREEN; |
617 SDL_GL_SetAttribute(SDL_GL_BUFFER_SIZE, 32); |
621 cScreenWidth:= cInitWidth; |
|
622 cScreenHeight:= cInitHeight |
|
623 end; |
|
624 |
|
625 SDL_WM_SetCaption('Hedgewars', nil); |
|
626 if SDLPrimSurface <> nil then |
|
627 begin |
|
628 {$IFDEF DEBUGFILE} |
|
629 AddFileLog('Freeing old primary surface...'); |
|
630 {$ENDIF} |
|
631 SDL_FreeSurface(SDLPrimSurface); |
|
632 end; |
|
633 |
|
634 {$IFDEF SDL13} |
|
635 windowID:= SDL_CreateWindow(nil, 0, 0, cScreenWidth, cScreenHeight, SDL_WINDOW_OPENGL or SDL_WINDOW_SHOWN |
|
636 {$IFDEF IPHONEOS} or SDL_WINDOW_BORDERLESS{$ENDIF}); |
|
637 SDL_CreateRenderer(windowID, 0, 0); |
|
638 PixelFormat:=nil;// SDLPrimSurface^.format; |
|
639 |
|
640 SDL_SetRenderDrawColor(0, 0, 0, 255); |
|
641 SDL_RenderFill(nil); |
|
642 SDL_RenderPresent(); |
618 {$ELSE} |
643 {$ELSE} |
619 SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); |
644 SDLPrimSurface:= SDL_SetVideoMode(cScreenWidth, cScreenHeight, cBits, flags); |
620 {$ENDIF} |
645 SDLTry(SDLPrimSurface <> nil, true); |
621 |
646 PixelFormat:= SDLPrimSurface^.format; |
622 {$IFNDEF SDL13} |
647 {$ENDIF} |
623 // this attribute is default in 1.3 and must be enabled in MacOSX |
|
624 {$IFNDEF DARWIN} |
|
625 if cVSyncInUse then |
|
626 {$ENDIF} |
|
627 SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, 1); |
|
628 {$ENDIF} |
|
629 |
|
630 flags:= SDL_OPENGL;// or SDL_RESIZABLE; |
|
631 {$IFDEF IPHONEOS} |
|
632 // remove the topbar from the iPhone |
|
633 flags:= flags or SDL_NOFRAME; |
|
634 {$ENDIF} |
|
635 |
|
636 if cFullScreen then |
|
637 begin |
|
638 flags:= flags or SDL_FULLSCREEN; |
|
639 cScreenWidth:= cInitWidth; |
|
640 cScreenHeight:= cInitHeight |
|
641 end; |
|
642 |
|
643 SDL_WM_SetCaption('Hedgewars', nil); |
|
644 if SDLPrimSurface <> nil then |
|
645 begin |
|
646 {$IFDEF DEBUGFILE} |
|
647 AddFileLog('Freeing old primary surface...'); |
|
648 {$ENDIF} |
|
649 SDL_FreeSurface(SDLPrimSurface); |
|
650 end; |
|
651 |
|
652 SDLPrimSurface:= SDL_SetVideoMode(cScreenWidth, cScreenHeight, cBits, flags); |
|
653 SDLTry(SDLPrimSurface <> nil, true); |
|
654 PixelFormat:= SDLPrimSurface^.format; |
|
655 |
648 |
656 {$IFDEF DEBUGFILE} |
649 {$IFDEF DEBUGFILE} |
657 AddFileLog('Setting up OpenGL...'); |
650 AddFileLog('Setting up OpenGL...'); |
658 AddFileLog('SDL video driver: ' + string(SDL_VideoDriverName(buf, sizeof(buf)))); |
651 AddFileLog('SDL video driver: ' + string(SDL_VideoDriverName(buf, sizeof(buf)))); |
659 {$ENDIF} |
652 {$ENDIF} |
660 SetupOpenGL(); |
653 SetupOpenGL(); |
661 |
|
662 end; |
654 end; |
663 |
655 |
664 procedure chVol_p(var s: shortstring); |
656 procedure chVol_p(var s: shortstring); |
665 begin |
657 begin |
666 inc(cVolumeDelta, 3) |
658 inc(cVolumeDelta, 3) |