가 어떻게 전체 화면 사이를 전환하고 실행하는 동안, 윈도우를 할 수 있습니다 (draw_lit_sprite
알레그로 에서와 같이) 표면을 tinte 수 있습니까? SDL_WM_ToggleFullScreen
함수를 찾았지만 SDL doc에 따라 Windows에서 작동하지 않는 것 같습니다.
예, 문서는 SDL_WM_ToggleFullScreen
기능은 현재는 X.
방법에 대한 작동 상태 나는 그것이 어떻게 이렇게 같은 : 이러한 점을 들어
void SdlGraphics::setupScreenSurface() {
Uint32 flags = 0;
flags |= SDL_HWSURFACE;
flags |= SDL_DOUBLEBUF;
if(isFullScreen) {
flags |= SDL_FULLSCREEN;
}
screenSurface = boost::shared_ptr<SDL_Surface>(
SDL_SetVideoMode(width, height, depth, flags),
utility::NullDeleter()
);
}
void SdlGraphics::setFullScreen(bool fullScreen) {
if(isFullScreen != fullScreen) {
isFullScreen = fullScreen;
setupScreenSurface();
}
}
:
을 tinte 수 있습니다. 하드웨어 가속을 통해 이러한 종류의 작업을 수행 할 수 있습니다. rotozoom
은 모두 소프트웨어로 작성되었습니다 (제 지식에 따라). 그래서 느린 이유입니다. 항상 느려질거야.
스프라이트를 2x로 그리는 데 사용할 수있는 다른 옵션은 모든 것을 1x 크기의 텍스처로 그리는 것이고 모든 것이 그려지면 그 텍스처를 2x 배율로 조정하는 것입니다. 그런 다음 프레임 당 여러 개의 작은 표면이 아닌 하나의 표면 만 처리합니다.
커서 문제는 drawing as fast as possible, but only updating your game at a constant rate 일 수 있습니다. 그렇게하면 부드럽게 스크롤되지만 게임 플레이가 제어 불능 상태가되지 않습니다.
위의 OpenGL을 말하면, 분명히 Windows에서만 DirectX를 대체 할 수있다. – Kylotan