| /* SPDX-License-Identifier: GPL-2.0-or-later */ |
| /* |
| * Copyright (C) 2022, Ideas on Board Oy |
| * |
| * sdl_texture.cpp - SDL Texture |
| */ |
| |
| #include "sdl_texture.h" |
| |
| #include <iostream> |
| |
| SDLTexture::SDLTexture(const SDL_Rect &rect, uint32_t pixelFormat, |
| const int stride) |
| : ptr_(nullptr), rect_(rect), pixelFormat_(pixelFormat), stride_(stride) |
| { |
| } |
| |
| SDLTexture::~SDLTexture() |
| { |
| if (ptr_) |
| SDL_DestroyTexture(ptr_); |
| } |
| |
| int SDLTexture::create(SDL_Renderer *renderer) |
| { |
| ptr_ = SDL_CreateTexture(renderer, pixelFormat_, |
| SDL_TEXTUREACCESS_STREAMING, rect_.w, |
| rect_.h); |
| if (!ptr_) { |
| std::cerr << "Failed to create SDL texture: " << SDL_GetError() |
| << std::endl; |
| return -ENOMEM; |
| } |
| |
| return 0; |
| } |