void Mouse::setPosition(const Point& pos) { _position = pos; auto renderer = Game::getInstance()->renderer(); float scaleX = renderer->scaleX(); float scaleY = renderer->scaleY(); SDL_WarpMouseInWindow(renderer->sdlWindow(), (int)(pos.x() * scaleX), (int)(pos.y() * scaleY)); }
void Mouse::setY(int y) { _y = y; auto renderer = Game::getInstance()->renderer(); float scaleX = renderer->scaleX(); float scaleY = renderer->scaleY(); SDL_WarpMouseInWindow(renderer->sdlWindow(), _x*scaleX, _y*scaleY); }
Texture* Renderer::screenshot() { SDL_Surface* window = SDL_GetWindowSurface(sdlWindow()); if (!window) { throw Exception(SDL_GetError()); } auto texture = new Texture(window->w, window->h); auto surface = texture->sdlSurface(); SDL_RenderReadPixels(_sdlRenderer, NULL, surface->format->format, surface->pixels, surface->pitch); SDL_FreeSurface(window); return texture; }