Browse Source

Add DEVILUTIONX_DISPLAY_TEXTURE_FORMAT

Some platforms, such as PS2, can benefit from a different texture
format. Makes the texture format a CMake setting.
pull/6558/head
Gleb Mazovetskiy 3 years ago
parent
commit
c2ad6da733
  1. 1
      CMake/Definitions.cmake
  2. 6
      CMakeLists.txt
  3. 2
      Source/storm/storm_svid.cpp
  4. 2
      Source/utils/display.cpp

1
CMake/Definitions.cmake

@ -90,6 +90,7 @@ foreach(
REMAP_KEYBOARD_KEYS
DEVILUTIONX_DEFAULT_RESAMPLER
STREAM_ALL_AUDIO_MIN_FILE_SIZE
DEVILUTIONX_DISPLAY_TEXTURE_FORMAT
)
if(DEFINED ${def_name} AND NOT ${def_name} STREQUAL "")
list(APPEND DEVILUTIONX_DEFINITIONS ${def_name}=${${def_name}})

6
CMakeLists.txt

@ -106,6 +106,12 @@ option(MACOSX_STANDALONE_APP_BUNDLE "Generate a portable app bundle to use on ot
cmake_dependent_option(DISABLE_TCP "Disable TCP multiplayer option" OFF "NOT NONET" ON)
cmake_dependent_option(DISABLE_ZERO_TIER "Disable ZeroTier multiplayer option" OFF "NOT NONET" ON)
# Graphics options
if(NOT USE_SDL1)
set(DEVILUTIONX_DISPLAY_TEXTURE_FORMAT "SDL_PIXELFORMAT_RGB888" CACHE STRING "Texture format for DevilutionX textures when using the GPU renderer")
mark_as_advanced(DEVILUTIONX_DISPLAY_TEXTURE_FORMAT)
endif()
# Sound options
option(NOSOUND "Disable sound support" OFF)
option(DEVILUTIONX_RESAMPLER_SPEEX "Build with Speex resampler" ON)

2
Source/storm/storm_svid.cpp

@ -285,7 +285,7 @@ bool SVidPlayBegin(const char *filename, int flags)
if (renderer != nullptr) {
int renderWidth = static_cast<int>(SVidWidth);
int renderHeight = static_cast<int>(SVidHeight);
texture = SDLWrap::CreateTexture(renderer, SDL_PIXELFORMAT_RGB888, SDL_TEXTUREACCESS_STREAMING, renderWidth, renderHeight);
texture = SDLWrap::CreateTexture(renderer, DEVILUTIONX_DISPLAY_TEXTURE_FORMAT, SDL_TEXTUREACCESS_STREAMING, renderWidth, renderHeight);
if (SDL_RenderSetLogicalSize(renderer, renderWidth, renderHeight) <= -1) {
ErrSdl();
}

2
Source/utils/display.cpp

@ -388,7 +388,7 @@ void ReinitializeTexture()
auto quality = StrCat(static_cast<int>(*sgOptions.Graphics.scaleQuality));
SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, quality.c_str());
texture = SDLWrap::CreateTexture(renderer, SDL_PIXELFORMAT_RGB888, SDL_TEXTUREACCESS_STREAMING, gnScreenWidth, gnScreenHeight);
texture = SDLWrap::CreateTexture(renderer, DEVILUTIONX_DISPLAY_TEXTURE_FORMAT, SDL_TEXTUREACCESS_STREAMING, gnScreenWidth, gnScreenHeight);
}
void ReinitializeIntegerScale()

Loading…
Cancel
Save