From 7d12a4273edeb4cb87885ee5d96a458eae80bfb0 Mon Sep 17 00:00:00 2001 From: /nick haya <74699483+The-SGPT@users.noreply.github.com> Date: Sun, 13 Feb 2022 15:03:11 +0800 Subject: [PATCH] Redo README.md --- CMakeLists.txt | 5 ++-- README.md | 61 ++++--------------------------------------------- logo.png | Bin 26726 -> 47142 bytes src/Render.cpp | 26 ++++++++++++--------- src/Render.hpp | 2 ++ 5 files changed, 25 insertions(+), 69 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 88b4b25..78d0245 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,10 +14,10 @@ set(OUT3_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/src/toml/") # Someone make a pull request to support MingW # Way to lazy to do that right now if (${CMAKE_SIZEOF_VOID_P} MATCHES 8) - set(MAIN_LIBRARIES "${CMAKE_CURRENT_LIST_DIR}/lib/x64/soloud_static.lib;${CMAKE_CURRENT_LIST_DIR}/lib/x64/SDL2.lib;${CMAKE_CURRENT_LIST_DIR}/lib/x64/SDL2_ttf.lib") + set(MAIN_LIBRARIES "${CMAKE_CURRENT_LIST_DIR}/lib/x64/libmodplug.lib;${CMAKE_CURRENT_LIST_DIR}/lib/x64/soloud_static.lib;${CMAKE_CURRENT_LIST_DIR}/lib/x64/SDL2.lib;${CMAKE_CURRENT_LIST_DIR}/lib/x64/SDL2_ttf.lib") set(MAIN_LIBRARIES_E "${CMAKE_CURRENT_LIST_DIR}/lib/x64/") else () - set(MAIN_LIBRARIES "${CMAKE_CURRENT_LIST_DIR}/lib/x86/soloud_static.lib;${CMAKE_CURRENT_LIST_DIR}/lib/x86/SDL2.lib;${CMAKE_CURRENT_LIST_DIR}/lib/x86/SDL2_ttf.lib") + set(MAIN_LIBRARIES "${CMAKE_CURRENT_LIST_DIR}/lib/x86/libmodplug.lib;${CMAKE_CURRENT_LIST_DIR}/lib/x86/soloud_static.lib;${CMAKE_CURRENT_LIST_DIR}/lib/x86/SDL2.lib;${CMAKE_CURRENT_LIST_DIR}/lib/x86/SDL2_ttf.lib") set(MAIN_LIBRARIES_E "${CMAKE_CURRENT_LIST_DIR}/lib/x86/") endif () @@ -76,5 +76,6 @@ file(REMOVE_RECURSE "${BUILD_DIRECTORY}/SDL2_ttf.lib") file(REMOVE_RECURSE "${BUILD_DIRECTORY}/SDL2main.lib") file(REMOVE_RECURSE "${BUILD_DIRECTORY}/SDL2test.lib") file(REMOVE_RECURSE "${BUILD_DIRECTORY}/soloud_static.lib") +file(REMOVE_RECURSE "${BUILD_DIRECTORY}/libmodplug.lib") # :) \ No newline at end of file diff --git a/README.md b/README.md index d6c4fb4..0ad08ee 100644 --- a/README.md +++ b/README.md @@ -1,64 +1,13 @@ ![bitch](logo.png) -# SDfmL - *Simple DirectMedia Flixel-like Multipurpose Layer* -*A basic wrapper meant to make creating SHIT easier* +# SDfmL -# What the shit is this +SDfmL is an easy to use, basic, and high-level game development library/wrapper. -A wrapper build around SDL2, some of its libraries, and SoLoud to make a lot of stuff -more easier to use. +Uses a style based on Flixel, a (very old) flash game engine. -Stuff like: -- Rendering functions -- Object system -- Sound -- Configuration -- and most possibly, more.... idk. -- Less dll binary clutter! +*For more information, check out [the basics.](DOCUMENTATION.md)* -# How the shit to use it den - -Currently, it only supports MSVC, but you could probably tweak CMakeLists.txt to be able to use -MingW, or GCC. - -## Requirements -- CMake, to build the damn thing -- SDL2 and SDL_ttf 2.0, duh -- SoLoud (static library) -- A VC++ (MSVC) compiler that atleast supports C++ std 17 - -To use it (in windows atleast), - -- Get SDL2 and SDL_ttf 2.0, and put em on the respective x86 and x64 folders. -You know how to place them. It's fucking common sense. -- [SoLoud.](https://sol.gfxile.net/soloud/index.html) Follow GENie instructions and build as a static library. -- If you are gonna be using the OpenMPT module, you'll need the libopenmpt dll in your exe directory as well. -- Prebuilt binaries (with OpenMPT) are [here.](https://cdn.discordapp.com/attachments/872338952483381258/941594180461932564/SoLoud-SDL2.7z) -- Clone the dam repo somewhere on ur machine. -- Go to where you cloned it, and run `cmake -B build -DCMAKE_BUILD_TYPE=Release` -- After successfully making the build files, run `cmake --build --config Release` to build it without the use of VStudio. -- If everything worked well, congratulations! You have just compiled a shitty program. - -`src/Main.cpp` should contain example code with some explanations. - -# Licensing - -The sole libraries themselves (SDL, SoLoud) are under the zLib/LibPNG licenses ofc, so you'll have to deal with that - -stb_image is under the Public Domain/MIT. - -TinySoundfont and toml11 under the same license as this wrapper (MIT License) - -## SDfmL license -MIT License - -Copyright 2022 haya3218 - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file +*License details are at [LICENSING.md](LICENSING.md)* \ No newline at end of file diff --git a/logo.png b/logo.png index 1297070a3424f15e31b35e09a50b01418a048792..9db20885c5413f431e8ed02dcbc0cd2f5c9cc2d6 100644 GIT binary patch literal 47142 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

~JgIl_JZ#am5#!tRxq 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 literal 26726 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 diff --git a/src/Render.cpp b/src/Render.cpp index 196596c..e7fc4a5 100644 --- a/src/Render.cpp +++ b/src/Render.cpp @@ -37,6 +37,7 @@ SoLoud::Soloud Render::music; SoLoud::Soloud Render::se; SoLoud::WavStream Render::waveLoader; SoLoud::Openmpt Render::modLoader; +SoLoud::Modplug Render::modPlugLoader; SoLoud::Midi Render::midiLoader; SoLoud::SoundFont Render::current_sf; string Render::currentMusic = ""; @@ -216,10 +217,6 @@ bool Render::Init(string window_name) { }); } SOUNDFONT = tomlParse("conf.toml", "config", "soundfont"); - if (se.init() > 0) { - log("SoLoud", " has failed to load. Is your dll broken?", ERROR_, __FILENAME__, __LINE__); - return false; - } if (music.init() > 0) { log("SoLoud", " has failed to load. Is your dll broken?", ERROR_, __FILENAME__, __LINE__); return false; @@ -235,7 +232,7 @@ bool Render::Init(string window_name) { return false; } log("SDL_ttf", " has been successfully initialized.", NORMAL, __FILENAME__, __LINE__); - window = SDL_CreateWindow(window_name.c_str(), SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, WINDOW_WIDTH, WINDOW_HEIGHT, SDL_WINDOW_OPENGL|SDL_WINDOW_SHOWN); + window = SDL_CreateWindow(window_name.c_str(), SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, WINDOW_WIDTH, WINDOW_HEIGHT, SDL_WINDOW_SHOWN); if (window == nullptr) { log("A window", " failed to be created. " + string(SDL_GetError()), ERROR_, __FILENAME__, __LINE__); return false; @@ -347,9 +344,7 @@ bool Render::Update() { } SDL_DestroyRenderer(renderer); SDL_DestroyWindow(window); - se.stopAll(); music.stopAll(); - se.deinit(); music.deinit(); TTF_Quit(); SDL_Quit(); @@ -379,10 +374,10 @@ bool Render::playSound(string path, bool override) { log("", "Played sound from " + path, NORMAL, __FILENAME__, __LINE__); waveLoader.setLooping(false); if (override) { - se.stop(seIndex); + music.stop(seIndex); } waveLoader.load(path.c_str()); - seIndex = se.play(waveLoader); + seIndex = music.play(waveLoader); return true; } @@ -424,9 +419,18 @@ bool Render::playModPlug(string path) { return true; } - log("", "Played mod tracker from " + path, NORMAL, __FILENAME__, __LINE__); + log("", "Try to play " + path + " using libopenmpt", NORMAL, __FILENAME__, __LINE__); if (modLoader.load(path.c_str()) != SoLoud::SO_NO_ERROR) { - log("", "Could not play " + path, NORMAL, __FILENAME__, __LINE__); + log("", "Playing " + path + " using libmodplug", NORMAL, __FILENAME__, __LINE__); + if (modPlugLoader.load(path.c_str()) != SoLoud::SO_NO_ERROR) { + log("", "Could not play " + path, NORMAL, __FILENAME__, __LINE__); + return false; + } + modPlugLoader.setLooping(true); + music.play(modPlugLoader); + currentMusic = path; + + return true; } modLoader.setLooping(true); music.play(modLoader); diff --git a/src/Render.hpp b/src/Render.hpp index a6e19dc..21f764f 100644 --- a/src/Render.hpp +++ b/src/Render.hpp @@ -264,6 +264,7 @@ namespace Render { extern SoLoud::Soloud music; extern SoLoud::WavStream waveLoader; extern SoLoud::Openmpt modLoader; + extern SoLoud::Modplug modPlugLoader; extern SoLoud::Midi midiLoader; extern SoLoud::SoundFont current_sf; extern string currentMusic; @@ -280,6 +281,7 @@ namespace Render { /* * Play music thru the openMPT api (669, amf, ams, dbm, digi, dmf, dsm, far, gdm, ice, imf, it, itp, j2b, m15, mdl, med, mo3, mod, mptm, mt2, mtm, okt, plm, psm, ptm, s3m, stm, ult, umx, wow, xm). Always loops. * When a midi is passed (mid), it will use a TSF-based midi loader instead. + * If libopenmpt fails to load, it will resort to the libmodplug api instead. * Passing a blank string (e.g. "") will stop the current playing music. */ bool playModPlug(string path);