replace SDL2_image with lodepng
This commit is contained in:
@@ -2,11 +2,10 @@ cmake_minimum_required(VERSION "3.15" FATAL_ERROR)
|
||||
project(endoomed LANGUAGES CXX)
|
||||
|
||||
find_package(SDL2 REQUIRED CONFIG)
|
||||
find_package(SDL2_image REQUIRED CONFIG)
|
||||
|
||||
add_executable(endoomed src/main.cpp)
|
||||
add_executable(endoomed src/lodepng.h src/lodepng.cpp src/main.cpp)
|
||||
set_property(TARGET endoomed PROPERTY CXX_STANDARD 11)
|
||||
target_link_libraries(endoomed SDL2::SDL2 SDL2_image::SDL2_image)
|
||||
target_link_libraries(endoomed SDL2::SDL2)
|
||||
if (TARGET SDL2::SDL_main)
|
||||
target_link_libraries(endoomed SDL2::SDL_main)
|
||||
endif()
|
||||
|
||||
6991
Endoomed/src/lodepng.cpp
Normal file
6991
Endoomed/src/lodepng.cpp
Normal file
File diff suppressed because it is too large
Load Diff
2089
Endoomed/src/lodepng.h
Normal file
2089
Endoomed/src/lodepng.h
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,9 +1,5 @@
|
||||
#include "lodepng.h"
|
||||
#include <SDL2/SDL.h>
|
||||
#ifndef __APPLE__
|
||||
# include <SDL2/SDL_image.h>
|
||||
#else
|
||||
# include <SDL2_image/SDL_image.h>
|
||||
#endif
|
||||
#include <cmath>
|
||||
#include <cstdint>
|
||||
#include <cstdlib>
|
||||
@@ -77,31 +73,33 @@ int main(int argc, char** argv)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!(IMG_Init(IMG_INIT_PNG) & IMG_INIT_PNG))
|
||||
{
|
||||
SDL_Quit();
|
||||
return -1;
|
||||
}
|
||||
|
||||
SDL_Window* window = nullptr;
|
||||
SDL_Renderer* renderer = nullptr;
|
||||
if (SDL_CreateWindowAndRenderer(640, 400, 0, &window, &renderer) < 0)
|
||||
{
|
||||
IMG_Quit();
|
||||
SDL_Quit();
|
||||
return -1;
|
||||
}
|
||||
|
||||
SDL_SetWindowTitle(window, "EnDOOMed");
|
||||
|
||||
SDL_Texture* codepage = IMG_LoadTexture(renderer, "codepage.png");
|
||||
if (codepage == nullptr)
|
||||
SDL_Texture* codepage = nullptr;
|
||||
{
|
||||
SDL_DestroyRenderer(renderer);
|
||||
SDL_DestroyWindow(window);
|
||||
IMG_Quit();
|
||||
SDL_Quit();
|
||||
return -1;
|
||||
unsigned codepageWidth, codepageHeight;
|
||||
std::vector<unsigned char> codepagePixels;
|
||||
if (lodepng::decode(codepagePixels, codepageWidth, codepageHeight, "codepage.png", LCT_RGBA, 8) != 0 ||
|
||||
(codepage = SDL_CreateTexture(renderer,
|
||||
SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_STATIC,
|
||||
static_cast<int>(codepageWidth), static_cast<int>(codepageHeight))) == nullptr ||
|
||||
SDL_UpdateTexture(codepage, nullptr, codepagePixels.data(), 4 * static_cast<int>(codepageWidth)) != 0 ||
|
||||
SDL_SetTextureBlendMode(codepage, SDL_BLENDMODE_BLEND) != 0)
|
||||
{
|
||||
SDL_DestroyTexture(codepage);
|
||||
SDL_DestroyRenderer(renderer);
|
||||
SDL_DestroyWindow(window);
|
||||
SDL_Quit();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
std::array<Cell, 2000> display;
|
||||
@@ -113,7 +111,6 @@ int main(int argc, char** argv)
|
||||
SDL_DestroyTexture(codepage);
|
||||
SDL_DestroyRenderer(renderer);
|
||||
SDL_DestroyWindow(window);
|
||||
IMG_Quit();
|
||||
SDL_Quit();
|
||||
return -1;
|
||||
}
|
||||
@@ -317,7 +314,6 @@ int main(int argc, char** argv)
|
||||
SDL_DestroyTexture(codepage);
|
||||
SDL_DestroyRenderer(renderer);
|
||||
SDL_DestroyWindow(window);
|
||||
IMG_Quit();
|
||||
SDL_Quit();
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user