Example #1
0
 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));
 }
Example #2
0
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);
}
Example #3
0
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;
}