From fb16c8e6d0499e95273f67a73263ac7d67c71ac5 Mon Sep 17 00:00:00 2001 From: Ancurio Date: Sun, 10 Oct 2021 10:07:27 +0200 Subject: [PATCH 01/27] Graphics: PoC integer scaling --- src/graphics.cpp | 115 +++++++++++++++++++++++++++++++++++++++++++++-- src/main.cpp | 16 ++++++- 2 files changed, 126 insertions(+), 5 deletions(-) diff --git a/src/graphics.cpp b/src/graphics.cpp index 86e835d..3ed6f6f 100644 --- a/src/graphics.cpp +++ b/src/graphics.cpp @@ -477,6 +477,11 @@ struct GraphicsPrivate TEXFBO frozenScene; Quad screenQuad; + Vec2i integerScaleFactor; + TEXFBO integerScaleBuffer; + bool integerScaleActive; + bool integerScaleFixedAspectRatio; + /* Global list of all live Disposables * (disposed on reset) */ IntruList dispList; @@ -492,7 +497,10 @@ struct GraphicsPrivate frameCount(0), brightness(255), fpsLimiter(frameRate), - frozen(false) + frozen(false), + integerScaleFactor(0, 0), + integerScaleActive(true), + integerScaleFixedAspectRatio(rtData->config.fixedAspectRatio) { recalculateScreenSize(rtData); updateScreenResoRatio(rtData); @@ -501,6 +509,12 @@ struct GraphicsPrivate TEXFBO::allocEmpty(frozenScene, scRes.x, scRes.y); TEXFBO::linkFBO(frozenScene); + if (integerScaleActive) + { + integerScaleFactor = Vec2i(1, 1); + rebuildIntegerScaleBuffer(); + } + FloatRect screenRect(0, 0, scRes.x, scRes.y); screenQuad.setTexPosRect(screenRect, screenRect); @@ -510,6 +524,7 @@ struct GraphicsPrivate ~GraphicsPrivate() { TEXFBO::fini(frozenScene); + TEXFBO::fini(integerScaleBuffer); } void updateScreenResoRatio(RGSSThreadData *rtData) @@ -544,15 +559,77 @@ struct GraphicsPrivate scOffset.y = (winSize.y - scSize.y) / 2.f; } + static int findHighestFittingScale(int base, int target) + { + int scale = 1; + + while (base * scale <= target) + scale += 1; + + Debug() << base << target << scale - 1; + + return scale - 1; + } + + /* Returns whether a new scale was found */ + bool findHighestIntegerScale() + { + Vec2i newScale(findHighestFittingScale(scRes.x, winSize.x), + findHighestFittingScale(scRes.y, winSize.y)); + + if (integerScaleFixedAspectRatio) + { + /* Limit both factors to the smaller of the two */ + newScale.x = newScale.y = std::min(newScale.x, newScale.y); + } + + if (newScale == integerScaleFactor) + return false; + + integerScaleFactor = newScale; + Debug() << "Found new scale:" << newScale.x << newScale.y; + return true; + } + + void rebuildIntegerScaleBuffer() + { + TEXFBO::fini(integerScaleBuffer); + TEXFBO::init(integerScaleBuffer); + TEXFBO::allocEmpty(integerScaleBuffer, scRes.x * integerScaleFactor.x, + scRes.y * integerScaleFactor.y); + TEXFBO::linkFBO(integerScaleBuffer); + + Debug() << "New buffer size:" << integerScaleBuffer.width << integerScaleBuffer.height; + } + + bool integerScaleStepApplicable() const + { + if (!integerScaleActive) + return false; + + if (integerScaleFactor.x < 1 || integerScaleFactor.y < 1) // XXX should be < 2, this is for testing only + return false; + + return true; + } + void checkResize() { if (threadData->windowSizeMsg.poll(winSize)) { + /* Query the acutal size in pixels, not units */ + SDL_GL_GetDrawableSize(threadData->window, &winSize.x, &winSize.y); + Debug() << "Reported GL drawable size:" << winSize.x << winSize.y; + /* some GL drivers change the viewport on window resize */ glState.viewport.refresh(); recalculateScreenSize(threadData); updateScreenResoRatio(threadData); + if (integerScaleActive) + if (findHighestIntegerScale()) + rebuildIntegerScaleBuffer(); + SDL_Rect screen = { scOffset.x, scOffset.y, scSize.x, scSize.y }; threadData->ethread->notifyGameScreenChange(screen); } @@ -600,7 +677,12 @@ struct GraphicsPrivate void metaBlitBufferFlippedScaled() { - GLMeta::blitRectangle(IntRect(0, 0, scRes.x, scRes.y), + metaBlitBufferFlippedScaled(scRes); + } + + void metaBlitBufferFlippedScaled(const Vec2i &sourceSize) + { + GLMeta::blitRectangle(IntRect(0, 0, sourceSize.x, sourceSize.y), IntRect(scOffset.x, scSize.y+scOffset.y, scSize.x, -scSize.y), threadData->config.smoothScaling); } @@ -609,11 +691,36 @@ struct GraphicsPrivate { screen.composite(); + if (integerScaleStepApplicable()) + { + assert(integerScaleBuffer.tex != TEX::ID(0)); + GLMeta::blitBegin(integerScaleBuffer); + GLMeta::blitSource(screen.getPP().frontBuffer()); + + GLMeta::blitRectangle(IntRect(0, 0, scRes.x, scRes.y), + IntRect(0, 0, integerScaleBuffer.width, integerScaleBuffer.height), + false); + + GLMeta::blitEnd(); + } + GLMeta::blitBeginScreen(winSize); - GLMeta::blitSource(screen.getPP().frontBuffer()); + + Vec2i sourceSize; + + if (integerScaleActive) + { + GLMeta::blitSource(integerScaleBuffer); + sourceSize = Vec2i(integerScaleBuffer.width, integerScaleBuffer.height); + } + else + { + GLMeta::blitSource(screen.getPP().frontBuffer()); + sourceSize = scRes; + } FBO::clear(); - metaBlitBufferFlippedScaled(); + metaBlitBufferFlippedScaled(sourceSize); GLMeta::blitEnd(); diff --git a/src/main.cpp b/src/main.cpp index b83eafe..648595b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -41,6 +41,10 @@ #include "binding.h" #ifdef __WINDOWS__ +#include +#include +#include + #include "resource.h" // Try to force dedicated GPU @@ -204,6 +208,16 @@ int main(int argc, char *argv[]) SDL_SetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS, "0"); // SDL_SetHint(SDL_HINT_ACCELEROMETER_AS_JOYSTICK, "0"); +#ifdef __WINDOWS__ + SetProcessDPIAware(); +// HRESULT hr = SetProcessDpiAwareness(PROCESS_PER_MONITOR_DPI_AWARE); +// if (FAILED(hr)) +// { +// _com_error err(hr); +// fwprintf(stderr, L"SetProcessDpiAwareness: %s\n", err.ErrorMessage()); +// } +#endif + /* initialize SDL first */ if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) < 0) { @@ -276,7 +290,7 @@ int main(int argc, char *argv[]) } SDL_Window *win; - Uint32 winFlags = SDL_WINDOW_OPENGL | SDL_WINDOW_INPUT_FOCUS; + Uint32 winFlags = SDL_WINDOW_OPENGL | SDL_WINDOW_INPUT_FOCUS | SDL_WINDOW_ALLOW_HIGHDPI; if (conf.winResizable) winFlags |= SDL_WINDOW_RESIZABLE; From bfe889f00af74d6cec397f1bf794d7bf62275f73 Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Wed, 27 Oct 2021 19:20:34 +0200 Subject: [PATCH 02/27] Add lastMileScaling, fix bugs, and expose options to MRI --- binding-mri/graphics-binding.cpp | 6 ++ mkxp.conf.sample | 24 +++++++ src/config.cpp | 2 + src/config.h | 6 ++ src/graphics.cpp | 113 ++++++++++++++++++++++++------- src/graphics.h | 3 + 6 files changed, 130 insertions(+), 24 deletions(-) diff --git a/binding-mri/graphics-binding.cpp b/binding-mri/graphics-binding.cpp index 25cf25b..aa58102 100644 --- a/binding-mri/graphics-binding.cpp +++ b/binding-mri/graphics-binding.cpp @@ -203,6 +203,9 @@ DEF_GRA_PROP_B(Fullscreen) DEF_GRA_PROP_B(ShowCursor) DEF_GRA_PROP_B(FixedAspectRatio) +DEF_GRA_PROP_B(SmoothScaling) +DEF_GRA_PROP_B(IntegerScaling) +DEF_GRA_PROP_B(LastMileScaling) #define INIT_GRA_PROP_BIND(PropName, prop_name_s) \ { \ @@ -225,6 +228,9 @@ void graphicsBindingInit() INIT_GRA_PROP_BIND( FrameCount, "frame_count" ); INIT_GRA_PROP_BIND( FixedAspectRatio, "fixed_aspect_ratio" ); + INIT_GRA_PROP_BIND( SmoothScaling, "smooth_scaling" ); + INIT_GRA_PROP_BIND( IntegerScaling, "integer_scaling" ); + INIT_GRA_PROP_BIND( LastMileScaling, "last_mile_scaling" ); if (rgssVer >= 2) { diff --git a/mkxp.conf.sample b/mkxp.conf.sample index 9863eaf..ad1686f 100644 --- a/mkxp.conf.sample +++ b/mkxp.conf.sample @@ -150,6 +150,30 @@ # maxTextureSize=0 +# Scale up the game screen by an integer amount, +# as large as the current window size allows, before +# doing any last additional scalings to fill part or +# all of the remaining window space (or none at all +# if lastMileScaling is disabled). +# If fixedAspectRatio is disabled, the integer scale +# factors in horizontal and vertical direction can differ +# depending on how much space is available, otherwise +# they are forced to the smaller of the two. +# (default: disabled) +# +# integerScaling.active = false + + +# When integer scaling is enabled, this option controls +# whether the scaled game screen is further scaled +# (with linear interpolation when smoothScaling is enabled) +# to fill the rest of the game window. +# Note that this option still respects fixedAspectRatio. +# (default: enabled) +# +# integerScaling.lastMileScaling = true + + # Set the base path of the game to '/path/to/game' # (default: executable directory) # diff --git a/src/config.cpp b/src/config.cpp index 9742f9c..aee2517 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -170,6 +170,8 @@ void Config::read(int argc, char *argv[]) PO_DESC(subImageFix, bool, false) \ PO_DESC(enableBlitting, bool, true) \ PO_DESC(maxTextureSize, int, 0) \ + PO_DESC(integerScaling.active, bool, false) \ + PO_DESC(integerScaling.lastMileScaling, bool, true) \ PO_DESC(gameFolder, std::string, ".") \ PO_DESC(anyAltToggleFS, bool, false) \ PO_DESC(enableReset, bool, true) \ diff --git a/src/config.h b/src/config.h index 967e1b0..2925a99 100644 --- a/src/config.h +++ b/src/config.h @@ -59,6 +59,12 @@ struct Config bool enableBlitting; int maxTextureSize; + struct + { + bool active; + bool lastMileScaling; + } integerScaling; + std::string gameFolder; bool anyAltToggleFS; bool enableReset; diff --git a/src/graphics.cpp b/src/graphics.cpp index 3ed6f6f..5e2c2f8 100644 --- a/src/graphics.cpp +++ b/src/graphics.cpp @@ -480,7 +480,7 @@ struct GraphicsPrivate Vec2i integerScaleFactor; TEXFBO integerScaleBuffer; bool integerScaleActive; - bool integerScaleFixedAspectRatio; + bool integerLastMileScaling; /* Global list of all live Disposables * (disposed on reset) */ @@ -499,22 +499,22 @@ struct GraphicsPrivate fpsLimiter(frameRate), frozen(false), integerScaleFactor(0, 0), - integerScaleActive(true), - integerScaleFixedAspectRatio(rtData->config.fixedAspectRatio) + integerScaleActive(rtData->config.integerScaling.active), + integerLastMileScaling(rtData->config.integerScaling.lastMileScaling) { - recalculateScreenSize(rtData); - updateScreenResoRatio(rtData); - - TEXFBO::init(frozenScene); - TEXFBO::allocEmpty(frozenScene, scRes.x, scRes.y); - TEXFBO::linkFBO(frozenScene); - if (integerScaleActive) { integerScaleFactor = Vec2i(1, 1); rebuildIntegerScaleBuffer(); } + recalculateScreenSize(rtData->config.fixedAspectRatio); + updateScreenResoRatio(rtData); + + TEXFBO::init(frozenScene); + TEXFBO::allocEmpty(frozenScene, scRes.x, scRes.y); + TEXFBO::linkFBO(frozenScene); + FloatRect screenRect(0, 0, scRes.x, scRes.y); screenQuad.setTexPosRect(screenRect, screenRect); @@ -537,16 +537,28 @@ struct GraphicsPrivate } /* Enforces fixed aspect ratio, if desired */ - void recalculateScreenSize(RGSSThreadData *rtData) + void recalculateScreenSize(bool fixedAspectRatio) { scSize = winSize; - if (!rtData->config.fixedAspectRatio) + if (!fixedAspectRatio && integerLastMileScaling) { scOffset = Vec2i(0, 0); return; } + /* Last mile scaling disabled: just center the integer scale buffer + * inside the window space */ + if (integerScaleActive && !integerLastMileScaling) + { + scOffset.x = (winSize.x - scRes.x * integerScaleFactor.x) / 2; + scOffset.y = (winSize.y - scRes.y * integerScaleFactor.y) / 2; + + scSize = Vec2i(scRes.x * integerScaleFactor.x, scRes.y * integerScaleFactor.y); + Debug() << scOffset.x << scOffset.y << winSize.x << winSize.y << integerScaleFactor.x << integerScaleFactor.y; + return; + } + float resRatio = (float) scRes.x / scRes.y; float winRatio = (float) winSize.x / winSize.y; @@ -577,7 +589,7 @@ struct GraphicsPrivate Vec2i newScale(findHighestFittingScale(scRes.x, winSize.x), findHighestFittingScale(scRes.y, winSize.y)); - if (integerScaleFixedAspectRatio) + if (threadData->config.fixedAspectRatio) { /* Limit both factors to the smaller of the two */ newScale.x = newScale.y = std::min(newScale.x, newScale.y); @@ -587,7 +599,6 @@ struct GraphicsPrivate return false; integerScaleFactor = newScale; - Debug() << "Found new scale:" << newScale.x << newScale.y; return true; } @@ -598,8 +609,6 @@ struct GraphicsPrivate TEXFBO::allocEmpty(integerScaleBuffer, scRes.x * integerScaleFactor.x, scRes.y * integerScaleFactor.y); TEXFBO::linkFBO(integerScaleBuffer); - - Debug() << "New buffer size:" << integerScaleBuffer.width << integerScaleBuffer.height; } bool integerScaleStepApplicable() const @@ -619,17 +628,18 @@ struct GraphicsPrivate { /* Query the acutal size in pixels, not units */ SDL_GL_GetDrawableSize(threadData->window, &winSize.x, &winSize.y); - Debug() << "Reported GL drawable size:" << winSize.x << winSize.y; + + /* Make sure integer buffers are rebuilt before screen offsets are + * calculated so we have the final allocated buffer size ready */ + if (integerScaleActive) + if (findHighestIntegerScale()) + rebuildIntegerScaleBuffer(); /* some GL drivers change the viewport on window resize */ glState.viewport.refresh(); recalculateScreenSize(threadData); updateScreenResoRatio(threadData); - if (integerScaleActive) - if (findHighestIntegerScale()) - rebuildIntegerScaleBuffer(); - SDL_Rect screen = { scOffset.x, scOffset.y, scSize.x, scSize.y }; threadData->ethread->notifyGameScreenChange(screen); } @@ -680,17 +690,31 @@ struct GraphicsPrivate metaBlitBufferFlippedScaled(scRes); } - void metaBlitBufferFlippedScaled(const Vec2i &sourceSize) + void metaBlitBufferFlippedScaled(const Vec2i &sourceSize, bool forceNearestNeighbour = false) { GLMeta::blitRectangle(IntRect(0, 0, sourceSize.x, sourceSize.y), IntRect(scOffset.x, scSize.y+scOffset.y, scSize.x, -scSize.y), - threadData->config.smoothScaling); + !forceNearestNeighbour && threadData->config.smoothScaling); } void redrawScreen() { screen.composite(); + // maybe unspaghetti this later + if (integerScaleStepApplicable() && !integerLastMileScaling) + { + GLMeta::blitBeginScreen(winSize); + GLMeta::blitSource(screen.getPP().frontBuffer()); + + FBO::clear(); + metaBlitBufferFlippedScaled(scRes, true); + GLMeta::blitEnd(); + + swapGLBuffer(); + return; + } + if (integerScaleStepApplicable()) { assert(integerScaleBuffer.tex != TEX::ID(0)); @@ -1133,7 +1157,48 @@ bool Graphics::getFixedAspectRatio() const void Graphics::setFixedAspectRatio(bool value) { shState->config().fixedAspectRatio = value; - p->recalculateScreenSize(p->threadData); + p->findHighestIntegerScale(); + p->recalculateScreenSize(p->threadData->config.fixedAspectRatio); + p->updateScreenResoRatio(p->threadData); +} + +bool Graphics::getSmoothScaling() const +{ + // Same deal as with fixed aspect ratio + return shState->config().smoothScaling; +} + +void Graphics::setSmoothScaling(bool value) +{ + shState->config().smoothScaling = value; +} + +bool Graphics::getIntegerScaling() const +{ + return p->integerScaleActive; +} + +void Graphics::setIntegerScaling(bool value) +{ + p->integerScaleActive = value; + + p->findHighestIntegerScale(); + p->rebuildIntegerScaleBuffer(); + + p->recalculateScreenSize(p->threadData->config.fixedAspectRatio); + p->updateScreenResoRatio(p->threadData); +} + +bool Graphics::getLastMileScaling() const +{ + return p->integerLastMileScaling; +} + +void Graphics::setLastMileScaling(bool value) +{ + p->integerLastMileScaling = value; + + p->recalculateScreenSize(p->threadData->config.fixedAspectRatio); p->updateScreenResoRatio(p->threadData); } diff --git a/src/graphics.h b/src/graphics.h index 546932f..940875d 100644 --- a/src/graphics.h +++ b/src/graphics.h @@ -63,6 +63,9 @@ public: DECL_ATTR( ShowCursor, bool ) DECL_ATTR( FixedAspectRatio, bool ) + DECL_ATTR( SmoothScaling, bool ) + DECL_ATTR( IntegerScaling, bool ) + DECL_ATTR( LastMileScaling, bool ) /* */ Scene *getScreen() const; From ca71e6ecb73b4de0e030223339a8b4b13edbe4c7 Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Tue, 7 Dec 2021 07:09:20 +0100 Subject: [PATCH 03/27] windows: Mark app as high-dpi aware --- src/main.cpp | 2 +- windows/mkxp.exe.manifest | 16 ++++++++++++++++ windows/resource.h | 1 + windows/resource.rc | 2 ++ 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 windows/mkxp.exe.manifest diff --git a/src/main.cpp b/src/main.cpp index b83eafe..8d359e7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -276,7 +276,7 @@ int main(int argc, char *argv[]) } SDL_Window *win; - Uint32 winFlags = SDL_WINDOW_OPENGL | SDL_WINDOW_INPUT_FOCUS; + Uint32 winFlags = SDL_WINDOW_OPENGL | SDL_WINDOW_INPUT_FOCUS | SDL_WINDOW_ALLOW_HIGHDPI; if (conf.winResizable) winFlags |= SDL_WINDOW_RESIZABLE; diff --git a/windows/mkxp.exe.manifest b/windows/mkxp.exe.manifest new file mode 100644 index 0000000..03dfda3 --- /dev/null +++ b/windows/mkxp.exe.manifest @@ -0,0 +1,16 @@ + + + + + + true + + PerMonitorV2 + + + + diff --git a/windows/resource.h b/windows/resource.h index 32015bd..c4e9734 100644 --- a/windows/resource.h +++ b/windows/resource.h @@ -1 +1,2 @@ +#define IDI_MANIFEST 1 #define IDI_APPICON 101 diff --git a/windows/resource.rc b/windows/resource.rc index 293e38d..8df8d01 100644 --- a/windows/resource.rc +++ b/windows/resource.rc @@ -1,4 +1,6 @@ #include +#include #include "resource.h" +IDI_MANIFEST RT_MANIFEST "mkxp.exe.manifest" IDI_APPICON ICON "icon.ico" From f6db7be538f11990026b2bed746318116dde63b2 Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Tue, 7 Dec 2021 07:10:45 +0100 Subject: [PATCH 04/27] Config: Add integer scaling options --- mkxp.conf.sample | 24 ++++++++++++++++++++++++ src/config.cpp | 2 ++ src/config.h | 6 ++++++ 3 files changed, 32 insertions(+) diff --git a/mkxp.conf.sample b/mkxp.conf.sample index 9863eaf..ad1686f 100644 --- a/mkxp.conf.sample +++ b/mkxp.conf.sample @@ -150,6 +150,30 @@ # maxTextureSize=0 +# Scale up the game screen by an integer amount, +# as large as the current window size allows, before +# doing any last additional scalings to fill part or +# all of the remaining window space (or none at all +# if lastMileScaling is disabled). +# If fixedAspectRatio is disabled, the integer scale +# factors in horizontal and vertical direction can differ +# depending on how much space is available, otherwise +# they are forced to the smaller of the two. +# (default: disabled) +# +# integerScaling.active = false + + +# When integer scaling is enabled, this option controls +# whether the scaled game screen is further scaled +# (with linear interpolation when smoothScaling is enabled) +# to fill the rest of the game window. +# Note that this option still respects fixedAspectRatio. +# (default: enabled) +# +# integerScaling.lastMileScaling = true + + # Set the base path of the game to '/path/to/game' # (default: executable directory) # diff --git a/src/config.cpp b/src/config.cpp index 9742f9c..aee2517 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -170,6 +170,8 @@ void Config::read(int argc, char *argv[]) PO_DESC(subImageFix, bool, false) \ PO_DESC(enableBlitting, bool, true) \ PO_DESC(maxTextureSize, int, 0) \ + PO_DESC(integerScaling.active, bool, false) \ + PO_DESC(integerScaling.lastMileScaling, bool, true) \ PO_DESC(gameFolder, std::string, ".") \ PO_DESC(anyAltToggleFS, bool, false) \ PO_DESC(enableReset, bool, true) \ diff --git a/src/config.h b/src/config.h index 967e1b0..2925a99 100644 --- a/src/config.h +++ b/src/config.h @@ -59,6 +59,12 @@ struct Config bool enableBlitting; int maxTextureSize; + struct + { + bool active; + bool lastMileScaling; + } integerScaling; + std::string gameFolder; bool anyAltToggleFS; bool enableReset; From 9cadb91ed1c80ff5028c541f37a12c388bba0443 Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Tue, 7 Dec 2021 07:13:53 +0100 Subject: [PATCH 05/27] Graphics: Implement native integer scaling --- src/graphics.cpp | 187 ++++++++++++++++++++++++++++++++++++++++++++--- src/graphics.h | 3 + 2 files changed, 181 insertions(+), 9 deletions(-) diff --git a/src/graphics.cpp b/src/graphics.cpp index 86e835d..52aef55 100644 --- a/src/graphics.cpp +++ b/src/graphics.cpp @@ -477,6 +477,11 @@ struct GraphicsPrivate TEXFBO frozenScene; Quad screenQuad; + Vec2i integerScaleFactor; + TEXFBO integerScaleBuffer; + bool integerScaleActive; + bool integerLastMileScaling; + /* Global list of all live Disposables * (disposed on reset) */ IntruList dispList; @@ -492,9 +497,18 @@ struct GraphicsPrivate frameCount(0), brightness(255), fpsLimiter(frameRate), - frozen(false) + frozen(false), + integerScaleFactor(0, 0), + integerScaleActive(rtData->config.integerScaling.active), + integerLastMileScaling(rtData->config.integerScaling.lastMileScaling) { - recalculateScreenSize(rtData); + if (integerScaleActive) + { + integerScaleFactor = Vec2i(1, 1); + rebuildIntegerScaleBuffer(); + } + + recalculateScreenSize(rtData->config.fixedAspectRatio); updateScreenResoRatio(rtData); TEXFBO::init(frozenScene); @@ -510,6 +524,7 @@ struct GraphicsPrivate ~GraphicsPrivate() { TEXFBO::fini(frozenScene); + TEXFBO::fini(integerScaleBuffer); } void updateScreenResoRatio(RGSSThreadData *rtData) @@ -522,16 +537,27 @@ struct GraphicsPrivate } /* Enforces fixed aspect ratio, if desired */ - void recalculateScreenSize(RGSSThreadData *rtData) + void recalculateScreenSize(bool fixedAspectRatio) { scSize = winSize; - if (!rtData->config.fixedAspectRatio) + if (!fixedAspectRatio && integerLastMileScaling) { scOffset = Vec2i(0, 0); return; } + /* Last mile scaling disabled: just center the integer scale buffer + * inside the window space */ + if (integerScaleActive && !integerLastMileScaling) + { + scOffset.x = (winSize.x - scRes.x * integerScaleFactor.x) / 2; + scOffset.y = (winSize.y - scRes.y * integerScaleFactor.y) / 2; + + scSize = Vec2i(scRes.x * integerScaleFactor.x, scRes.y * integerScaleFactor.y); + return; + } + float resRatio = (float) scRes.x / scRes.y; float winRatio = (float) winSize.x / winSize.y; @@ -544,10 +570,68 @@ struct GraphicsPrivate scOffset.y = (winSize.y - scSize.y) / 2.f; } + static int findHighestFittingScale(int base, int target) + { + int scale = 1; + + while (base * scale <= target) + scale += 1; + + return scale - 1; + } + + /* Returns whether a new scale was found */ + bool findHighestIntegerScale() + { + Vec2i newScale(findHighestFittingScale(scRes.x, winSize.x), + findHighestFittingScale(scRes.y, winSize.y)); + + if (threadData->config.fixedAspectRatio) + { + /* Limit both factors to the smaller of the two */ + newScale.x = newScale.y = std::min(newScale.x, newScale.y); + } + + if (newScale == integerScaleFactor) + return false; + + integerScaleFactor = newScale; + return true; + } + + void rebuildIntegerScaleBuffer() + { + TEXFBO::fini(integerScaleBuffer); + TEXFBO::init(integerScaleBuffer); + TEXFBO::allocEmpty(integerScaleBuffer, scRes.x * integerScaleFactor.x, + scRes.y * integerScaleFactor.y); + TEXFBO::linkFBO(integerScaleBuffer); + } + + bool integerScaleStepApplicable() const + { + if (!integerScaleActive) + return false; + + if (integerScaleFactor.x < 1 || integerScaleFactor.y < 1) // XXX should be < 2, this is for testing only + return false; + + return true; + } + void checkResize() { if (threadData->windowSizeMsg.poll(winSize)) { + /* Query the acutal size in pixels, not units */ + SDL_GL_GetDrawableSize(threadData->window, &winSize.x, &winSize.y); + + /* Make sure integer buffers are rebuilt before screen offsets are + * calculated so we have the final allocated buffer size ready */ + if (integerScaleActive) + if (findHighestIntegerScale()) + rebuildIntegerScaleBuffer(); + /* some GL drivers change the viewport on window resize */ glState.viewport.refresh(); recalculateScreenSize(threadData); @@ -600,20 +684,64 @@ struct GraphicsPrivate void metaBlitBufferFlippedScaled() { - GLMeta::blitRectangle(IntRect(0, 0, scRes.x, scRes.y), + metaBlitBufferFlippedScaled(scRes); + } + + void metaBlitBufferFlippedScaled(const Vec2i &sourceSize, bool forceNearestNeighbour = false) + { + GLMeta::blitRectangle(IntRect(0, 0, sourceSize.x, sourceSize.y), IntRect(scOffset.x, scSize.y+scOffset.y, scSize.x, -scSize.y), - threadData->config.smoothScaling); + !forceNearestNeighbour && threadData->config.smoothScaling); } void redrawScreen() { screen.composite(); + // maybe unspaghetti this later + if (integerScaleStepApplicable() && !integerLastMileScaling) + { + GLMeta::blitBeginScreen(winSize); + GLMeta::blitSource(screen.getPP().frontBuffer()); + + FBO::clear(); + metaBlitBufferFlippedScaled(scRes, true); + GLMeta::blitEnd(); + + swapGLBuffer(); + return; + } + + if (integerScaleStepApplicable()) + { + assert(integerScaleBuffer.tex != TEX::ID(0)); + GLMeta::blitBegin(integerScaleBuffer); + GLMeta::blitSource(screen.getPP().frontBuffer()); + + GLMeta::blitRectangle(IntRect(0, 0, scRes.x, scRes.y), + IntRect(0, 0, integerScaleBuffer.width, integerScaleBuffer.height), + false); + + GLMeta::blitEnd(); + } + GLMeta::blitBeginScreen(winSize); - GLMeta::blitSource(screen.getPP().frontBuffer()); + + Vec2i sourceSize; + + if (integerScaleActive) + { + GLMeta::blitSource(integerScaleBuffer); + sourceSize = Vec2i(integerScaleBuffer.width, integerScaleBuffer.height); + } + else + { + GLMeta::blitSource(screen.getPP().frontBuffer()); + sourceSize = scRes; + } FBO::clear(); - metaBlitBufferFlippedScaled(); + metaBlitBufferFlippedScaled(sourceSize); GLMeta::blitEnd(); @@ -1026,7 +1154,48 @@ bool Graphics::getFixedAspectRatio() const void Graphics::setFixedAspectRatio(bool value) { shState->config().fixedAspectRatio = value; - p->recalculateScreenSize(p->threadData); + p->findHighestIntegerScale(); + p->recalculateScreenSize(p->threadData->config.fixedAspectRatio); + p->updateScreenResoRatio(p->threadData); +} + +bool Graphics::getSmoothScaling() const +{ + // Same deal as with fixed aspect ratio + return shState->config().smoothScaling; +} + +void Graphics::setSmoothScaling(bool value) +{ + shState->config().smoothScaling = value; +} + +bool Graphics::getIntegerScaling() const +{ + return p->integerScaleActive; +} + +void Graphics::setIntegerScaling(bool value) +{ + p->integerScaleActive = value; + + p->findHighestIntegerScale(); + p->rebuildIntegerScaleBuffer(); + + p->recalculateScreenSize(p->threadData->config.fixedAspectRatio); + p->updateScreenResoRatio(p->threadData); +} + +bool Graphics::getLastMileScaling() const +{ + return p->integerLastMileScaling; +} + +void Graphics::setLastMileScaling(bool value) +{ + p->integerLastMileScaling = value; + + p->recalculateScreenSize(p->threadData->config.fixedAspectRatio); p->updateScreenResoRatio(p->threadData); } diff --git a/src/graphics.h b/src/graphics.h index 546932f..940875d 100644 --- a/src/graphics.h +++ b/src/graphics.h @@ -63,6 +63,9 @@ public: DECL_ATTR( ShowCursor, bool ) DECL_ATTR( FixedAspectRatio, bool ) + DECL_ATTR( SmoothScaling, bool ) + DECL_ATTR( IntegerScaling, bool ) + DECL_ATTR( LastMileScaling, bool ) /* */ Scene *getScreen() const; From e2bbcde85d76df16608b294e1f040ffbef224776 Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Tue, 7 Dec 2021 07:14:50 +0100 Subject: [PATCH 06/27] MRI-Binding: Expose integer scaling related attributes --- binding-mri/graphics-binding.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/binding-mri/graphics-binding.cpp b/binding-mri/graphics-binding.cpp index 25cf25b..aa58102 100644 --- a/binding-mri/graphics-binding.cpp +++ b/binding-mri/graphics-binding.cpp @@ -203,6 +203,9 @@ DEF_GRA_PROP_B(Fullscreen) DEF_GRA_PROP_B(ShowCursor) DEF_GRA_PROP_B(FixedAspectRatio) +DEF_GRA_PROP_B(SmoothScaling) +DEF_GRA_PROP_B(IntegerScaling) +DEF_GRA_PROP_B(LastMileScaling) #define INIT_GRA_PROP_BIND(PropName, prop_name_s) \ { \ @@ -225,6 +228,9 @@ void graphicsBindingInit() INIT_GRA_PROP_BIND( FrameCount, "frame_count" ); INIT_GRA_PROP_BIND( FixedAspectRatio, "fixed_aspect_ratio" ); + INIT_GRA_PROP_BIND( SmoothScaling, "smooth_scaling" ); + INIT_GRA_PROP_BIND( IntegerScaling, "integer_scaling" ); + INIT_GRA_PROP_BIND( LastMileScaling, "last_mile_scaling" ); if (rgssVer >= 2) { From e32aa71f4b9b5c82da42ce64c188c511b6b4a571 Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Tue, 2 Nov 2021 05:23:25 +0100 Subject: [PATCH 07/27] Add Input::scrollV() to query vertical mouse wheel scroll events --- binding-mri/input-binding.cpp | 8 ++++++++ src/eventthread.cpp | 6 ++++++ src/eventthread.h | 2 ++ src/input.cpp | 14 ++++++++++++++ src/input.h | 1 + 5 files changed, 31 insertions(+) diff --git a/binding-mri/input-binding.cpp b/binding-mri/input-binding.cpp index 62a383a..41f3ce1 100644 --- a/binding-mri/input-binding.cpp +++ b/binding-mri/input-binding.cpp @@ -115,6 +115,13 @@ RB_METHOD(inputMouseY) return rb_fix_new(shState->input().mouseY()); } +RB_METHOD(inputScrollV) +{ + RB_UNUSED_PARAM; + + return rb_fix_new(shState->input().scrollV()); +} + struct { @@ -168,6 +175,7 @@ inputBindingInit() _rb_define_module_function(module, "mouse_x", inputMouseX); _rb_define_module_function(module, "mouse_y", inputMouseY); + _rb_define_module_function(module, "scroll_v", inputScrollV); if (rgssVer >= 3) { diff --git a/src/eventthread.cpp b/src/eventthread.cpp index bbb8b51..448fdc4 100644 --- a/src/eventthread.cpp +++ b/src/eventthread.cpp @@ -73,6 +73,7 @@ uint8_t EventThread::keyStates[]; EventThread::JoyState EventThread::joyState; EventThread::MouseState EventThread::mouseState; EventThread::TouchState EventThread::touchState; +SDL_atomic_t EventThread::verticalScrollDistance; /* User event codes */ enum @@ -380,6 +381,11 @@ void EventThread::process(RGSSThreadData &rtData) updateCursorState(cursorInWindow, gameScreen); break; + case SDL_MOUSEWHEEL : + /* Only consider vertical scrolling for now */ + SDL_AtomicAdd(&verticalScrollDistance, event.wheel.y); + break; + case SDL_FINGERDOWN : i = event.tfinger.fingerId; touchState.fingers[i].down = true; diff --git a/src/eventthread.h b/src/eventthread.h index 0c57f2d..432ad7d 100644 --- a/src/eventthread.h +++ b/src/eventthread.h @@ -31,6 +31,7 @@ #include #include #include +#include #include @@ -76,6 +77,7 @@ public: static JoyState joyState; static MouseState mouseState; static TouchState touchState; + static SDL_atomic_t verticalScrollDistance; static bool allocUserEvents(); diff --git a/src/input.cpp b/src/input.cpp index 5bcc850..f025b5c 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -28,6 +28,7 @@ #include #include +#include #include #include @@ -287,6 +288,9 @@ struct InputPrivate Input::ButtonCode repeating; unsigned int repeatCount; + /* Cumulative vertical scroll distance since last update call */ + int vScrollDistance; + struct { int active; @@ -322,6 +326,8 @@ struct InputPrivate dir4Data.previous = Input::None; dir8Data.active = 0; + + vScrollDistance = 0; } inline ButtonState &getStateCheck(int code) @@ -640,6 +646,9 @@ void Input::update() } p->repeating = None; + + /* Fetch new cumulative scroll distance and reset counter */ + p->vScrollDistance = SDL_AtomicSet(&EventThread::verticalScrollDistance, 0); } bool Input::isPressed(int button) @@ -681,6 +690,11 @@ int Input::mouseY() return (EventThread::mouseState.y - rtData.screenOffset.y) * rtData.sizeResoRatio.y; } +int Input::scrollV() +{ + return p->vScrollDistance; +} + Input::~Input() { delete p; diff --git a/src/input.h b/src/input.h index 1daede7..1433855 100644 --- a/src/input.h +++ b/src/input.h @@ -58,6 +58,7 @@ public: /* Non-standard extensions */ int mouseX(); int mouseY(); + int scrollV(); private: Input(const RGSSThreadData &rtData); From 94009441be969478b5fa55534b5a592c7323a5e6 Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Tue, 2 Nov 2021 05:26:48 +0100 Subject: [PATCH 08/27] Graphics::resizeScreen(): Remove upper bound --- src/graphics.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/graphics.cpp b/src/graphics.cpp index 52aef55..f13f950 100644 --- a/src/graphics.cpp +++ b/src/graphics.cpp @@ -1063,8 +1063,8 @@ int Graphics::height() const void Graphics::resizeScreen(int width, int height) { - width = clamp(width, 1, 640); - height = clamp(height, 1, 480); + width = std::max(1, width); + height = std::max(1, height); Vec2i size(width, height); From d09fec941b6135bde92dcc2fba2b9de75f47dc8e Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Tue, 2 Nov 2021 05:54:38 +0100 Subject: [PATCH 09/27] Add Graphics#resize_window Does what you would expect. Arguments are not bound-checked! --- binding-mri/graphics-binding.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/binding-mri/graphics-binding.cpp b/binding-mri/graphics-binding.cpp index aa58102..2c5351c 100644 --- a/binding-mri/graphics-binding.cpp +++ b/binding-mri/graphics-binding.cpp @@ -20,6 +20,7 @@ */ #include "graphics.h" +#include "eventthread.h" #include "sharedstate.h" #include "binding-util.h" #include "binding-types.h" @@ -195,6 +196,18 @@ RB_METHOD(graphicsPlayMovie) return Qnil; } +RB_METHOD(graphicsResizeWindow) +{ + RB_UNUSED_PARAM; + + int width, height; + rb_get_args(argc, argv, "ii", &width, &height RB_ARG_END); + + shState->eThread().requestWindowResize(width, height); + + return Qnil; +} + DEF_GRA_PROP_I(FrameRate) DEF_GRA_PROP_I(FrameCount) DEF_GRA_PROP_I(Brightness) @@ -252,4 +265,6 @@ void graphicsBindingInit() INIT_GRA_PROP_BIND( Fullscreen, "fullscreen" ); INIT_GRA_PROP_BIND( ShowCursor, "show_cursor" ); + + _rb_define_module_function(module, "resize_window", graphicsResizeWindow); } From a92adee7f88c0ff946c33c4754d037bd1a6cae51 Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Fri, 5 Nov 2021 17:49:16 +0100 Subject: [PATCH 10/27] EventThread: Add 'recenter' parameter to window resize request If true, centers the window on the current screen with the new size. --- binding-mri/graphics-binding.cpp | 5 +++-- src/eventthread.cpp | 37 ++++++++++++++++++++++++++++---- src/eventthread.h | 2 +- 3 files changed, 37 insertions(+), 7 deletions(-) diff --git a/binding-mri/graphics-binding.cpp b/binding-mri/graphics-binding.cpp index 2c5351c..0ac9274 100644 --- a/binding-mri/graphics-binding.cpp +++ b/binding-mri/graphics-binding.cpp @@ -201,9 +201,10 @@ RB_METHOD(graphicsResizeWindow) RB_UNUSED_PARAM; int width, height; - rb_get_args(argc, argv, "ii", &width, &height RB_ARG_END); + bool recenter = false; + rb_get_args(argc, argv, "ii|b", &width, &height, &recenter RB_ARG_END); - shState->eThread().requestWindowResize(width, height); + shState->eThread().requestWindowResize(width, height, recenter); return Qnil; } diff --git a/src/eventthread.cpp b/src/eventthread.cpp index 448fdc4..ed95cf9 100644 --- a/src/eventthread.cpp +++ b/src/eventthread.cpp @@ -101,6 +101,36 @@ bool EventThread::allocUserEvents() return true; } +static void writeResizeRequest(SDL_WindowEvent &event, int w, int h, bool recenter) +{ + event.data1 = w; + event.data2 = h; + event.padding3 = recenter ? 1 : 0; +} + +static void handleResizeRequest(SDL_Window *win, SDL_WindowEvent &event) +{ + int newWidth = event.data1; + int newHeight = event.data2; + bool recenter = event.padding3 == 1; + + if (recenter) + { + int display = SDL_GetWindowDisplayIndex(win); + if (display >= 0) + { + SDL_DisplayMode dm; + SDL_GetDesktopDisplayMode(display, &dm); + int newX = (dm.w - newWidth) / 2; + int newY = (dm.h - newHeight) / 2; + + SDL_SetWindowPosition(win, newX, newY); + } + } + + SDL_SetWindowSize(win, newWidth, newHeight); +} + EventThread::EventThread() : fullscreen(false), showCursor(false) @@ -410,7 +440,7 @@ void EventThread::process(RGSSThreadData &rtData) break; case REQUEST_WINRESIZE : - SDL_SetWindowSize(win, event.window.data1, event.window.data2); + handleResizeRequest(win, event.window); break; case REQUEST_MESSAGEBOX : @@ -581,12 +611,11 @@ void EventThread::requestFullscreenMode(bool mode) SDL_PushEvent(&event); } -void EventThread::requestWindowResize(int width, int height) +void EventThread::requestWindowResize(int width, int height, bool recenter) { SDL_Event event; event.type = usrIdStart + REQUEST_WINRESIZE; - event.window.data1 = width; - event.window.data2 = height; + writeResizeRequest(event.window, width, height, recenter); SDL_PushEvent(&event); } diff --git a/src/eventthread.h b/src/eventthread.h index 432ad7d..f36a56c 100644 --- a/src/eventthread.h +++ b/src/eventthread.h @@ -88,7 +88,7 @@ public: /* Called from RGSS thread */ void requestFullscreenMode(bool mode); - void requestWindowResize(int width, int height); + void requestWindowResize(int width, int height, bool recenter = false); void requestShowCursor(bool mode); void requestTerminate(); From 1856e677a3bf45cebcebec201ed127804db3e569 Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Fri, 5 Nov 2021 18:18:43 +0100 Subject: [PATCH 11/27] Bitmap: Add ::writeToPng() --- binding-mri/bitmap-binding.cpp | 14 ++++++++++++++ src/bitmap.cpp | 33 +++++++++++++++++++++------------ src/bitmap.h | 3 +++ 3 files changed, 38 insertions(+), 12 deletions(-) diff --git a/binding-mri/bitmap-binding.cpp b/binding-mri/bitmap-binding.cpp index 49e0093..11a0697 100644 --- a/binding-mri/bitmap-binding.cpp +++ b/binding-mri/bitmap-binding.cpp @@ -433,6 +433,18 @@ RB_METHOD(bitmapInitializeCopy) return self; } +RB_METHOD(bitmapWriteToPng) +{ + Bitmap *b = getPrivateData(self); + const char *filename; + + rb_get_args(argc, argv, "z", &filename RB_ARG_END); + + b->writeToPng(filename); + + return self; +} + void bitmapBindingInit() @@ -466,5 +478,7 @@ bitmapBindingInit() _rb_define_method(klass, "radial_blur", bitmapRadialBlur); } + _rb_define_method(klass, "write_to_png", bitmapWriteToPng); + INIT_PROP_BIND(Bitmap, Font, "font"); } diff --git a/src/bitmap.cpp b/src/bitmap.cpp index a2f27be..cec61bb 100644 --- a/src/bitmap.cpp +++ b/src/bitmap.cpp @@ -245,6 +245,20 @@ struct BitmapPrivate self->modified(); } + + void downloadToSurface() + { + if (!surface) + allocSurface(); + + FBO::bind(gl.fbo); + + glState.viewport.pushSet(IntRect(0, 0, gl.width, gl.height)); + + ::gl.ReadPixels(0, 0, gl.width, gl.height, GL_RGBA, GL_UNSIGNED_BYTE, surface->pixels); + + glState.viewport.pop(); + } }; struct BitmapOpenHandler : FileSystem::OpenHandler @@ -900,18 +914,7 @@ Color Bitmap::getPixel(int x, int y) const if (x < 0 || y < 0 || x >= width() || y >= height()) return Vec4(); - if (!p->surface) - { - p->allocSurface(); - - FBO::bind(p->gl.fbo); - - glState.viewport.pushSet(IntRect(0, 0, width(), height())); - - gl.ReadPixels(0, 0, width(), height(), GL_RGBA, GL_UNSIGNED_BYTE, p->surface->pixels); - - glState.viewport.pop(); - } + p->downloadToSurface(); uint32_t pixel = getPixelAt(p->surface, p->format, x, y); @@ -1400,6 +1403,12 @@ void Bitmap::setInitFont(Font *value) p->font = value; } +void Bitmap::writeToPng(const char *filename) +{ + p->downloadToSurface(); + IMG_SavePNG(p->surface, filename); +} + TEXFBO &Bitmap::getGLTypes() { return p->gl; diff --git a/src/bitmap.h b/src/bitmap.h index b744911..68bb7f9 100644 --- a/src/bitmap.h +++ b/src/bitmap.h @@ -105,6 +105,9 @@ public: * use at construction */ void setInitFont(Font *value); + /* extensions */ + void writeToPng(const char *filename); + /* */ TEXFBO &getGLTypes(); SDL_Surface *megaSurface() const; From 8fa94c0390755cf065f1b7097e73c53bf1781639 Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Fri, 5 Nov 2021 18:50:04 +0100 Subject: [PATCH 12/27] Add documentation for dancing dragon extensions --- doc/SDL_scancode_map.rb | 64 +++++++++++++++++++++++++++++++++++++++++ doc/extension_doc.md | 23 +++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 doc/SDL_scancode_map.rb create mode 100644 doc/extension_doc.md diff --git a/doc/SDL_scancode_map.rb b/doc/SDL_scancode_map.rb new file mode 100644 index 0000000..5bb6691 --- /dev/null +++ b/doc/SDL_scancode_map.rb @@ -0,0 +1,64 @@ +SDL = { + :UNKNOWN => 0x00, + :A => 0x04, :B => 0x05, :C => 0x06, :D => 0x07, + :E => 0x08, :F => 0x09, :G => 0x0A, :H => 0x0B, + :I => 0x0C, :J => 0x0D, :K => 0x0E, :L => 0x0F, + :M => 0x10, :N => 0x11, :O => 0x12, :P => 0x13, + :Q => 0x14, :R => 0x15, :S => 0x16, :T => 0x17, + :U => 0x18, :V => 0x19, :W => 0x1A, :X => 0x1B, + :Y => 0x1C, :Z => 0x1D, :N1 => 0x1E, :N2 => 0x1F, + :N3 => 0x20, :N4 => 0x21, :N5 => 0x22, :N6 => 0x23, + :N7 => 0x24, :N8 => 0x25, :N9 => 0x26, :N0 => 0x27, + :RETURN => 0x28, :ESCAPE => 0x29, :BACKSPACE => 0x2A, :TAB => 0x2B, + :SPACE => 0x2C, :MINUS => 0x2D, :EQUALS => 0x2E, :LEFTBRACKET => 0x2F, + :RIGHTBRACKET => 0x30, :BACKSLASH => 0x31, :NONUSHASH => 0x32, :SEMICOLON => 0x33, + :APOSTROPHE => 0x34, :GRAVE => 0x35, :COMMA => 0x36, :PERIOD => 0x37, + :SLASH => 0x38, :CAPSLOCK => 0x39, :F1 => 0x3A, :F2 => 0x3B, + :F3 => 0x3C, :F4 => 0x3D, :F5 => 0x3E, :F6 => 0x3F, + :F7 => 0x40, :F8 => 0x41, :F9 => 0x42, :F10 => 0x43, + :F11 => 0x44, :F12 => 0x45, :PRINTSCREEN => 0x46, :SCROLLLOCK => 0x47, + :PAUSE => 0x48, :INSERT => 0x49, :HOME => 0x4A, :PAGEUP => 0x4B, + :DELETE => 0x4C, :END => 0x4D, :PAGEDOWN => 0x4E, :RIGHT => 0x4F, + :LEFT => 0x50, :DOWN => 0x51, :UP => 0x52, :NUMLOCKCLEAR => 0x53, + :KP_DIVIDE => 0x54, :KP_MULTIPLY => 0x55, :KP_MINUS => 0x56, :KP_PLUS => 0x57, + :KP_ENTER => 0x58, :KP_1 => 0x59, :KP_2 => 0x5A, :KP_3 => 0x5B, + :KP_4 => 0x5C, :KP_5 => 0x5D, :KP_6 => 0x5E, :KP_7 => 0x5F, + :KP_8 => 0x60, :KP_9 => 0x61, :KP_0 => 0x62, :KP_PERIOD => 0x63, + :NONUSBACKSLASH => 0x64, :APPLICATION => 0x65, :POWER => 0x66, :KP_EQUALS => 0x67, + :F13 => 0x68, :F14 => 0x69, :F15 => 0x6A, :F16 => 0x6B, + :F17 => 0x6C, :F18 => 0x6D, :F19 => 0x6E, :F20 => 0x6F, + :F21 => 0x70, :F22 => 0x71, :F23 => 0x72, :F24 => 0x73, + :EXECUTE => 0x74, :HELP => 0x75, :MENU => 0x76, :SELECT => 0x77, + :STOP => 0x78, :AGAIN => 0x79, :UNDO => 0x7A, :CUT => 0x7B, + :COPY => 0x7C, :PASTE => 0x7D, :FIND => 0x7E, :MUTE => 0x7F, + :VOLUMEUP => 0x80, :VOLUMEDOWN => 0x81, :LOCKINGCAPSLOCK => 0x82, :LOCKINGNUMLOCK => 0x83, + :LOCKINGSCROLLLOCK => 0x84, :KP_COMMA => 0x85, :KP_EQUALSAS400 => 0x86, :INTERNATIONAL1 => 0x87, + :INTERNATIONAL2 => 0x88, :INTERNATIONAL3 => 0x89, :INTERNATIONAL4 => 0x8A, :INTERNATIONAL5 => 0x8B, + :INTERNATIONAL6 => 0x8C, :INTERNATIONAL7 => 0x8D, :INTERNATIONAL8 => 0x8E, :INTERNATIONAL9 => 0x8F, + :LANG1 => 0x90, :LANG2 => 0x91, :LANG3 => 0x92, :LANG4 => 0x93, + :LANG5 => 0x94, :LANG6 => 0x95, :LANG7 => 0x96, :LANG8 => 0x97, + :LANG9 => 0x98, :ALTERASE => 0x99, :SYSREQ => 0x9A, :CANCEL => 0x9B, + :CLEAR => 0x9C, :PRIOR => 0x9D, :RETURN2 => 0x9E, :SEPARATOR => 0x9F, + :OUT => 0xA0, :OPER => 0xA1, :CLEARAGAIN => 0xA2, :CRSEL => 0xA3, + :EXSEL => 0xA4, :KP_00 => 0xB0, :KP_000 => 0xB1, :THOUSANDSSEPARATOR => 0xB2, + :DECIMALSEPARATOR => 0xB3, :CURRENCYUNIT => 0xB4, :CURRENCYSUBUNIT => 0xB5, :KP_LEFTPAREN => 0xB6, + :KP_RIGHTPAREN => 0xB7, :KP_LEFTBRACE => 0xB8, :KP_RIGHTBRACE => 0xB9, :KP_TAB => 0xBA, + :KP_BACKSPACE => 0xBB, :KP_A => 0xBC, :KP_B => 0xBD, :KP_C => 0xBE, + :KP_D => 0xBF, :KP_E => 0xC0, :KP_F => 0xC1, :KP_XOR => 0xC2, + :KP_POWER => 0xC3, :KP_PERCENT => 0xC4, :KP_LESS => 0xC5, :KP_GREATER => 0xC6, + :KP_AMPERSAND => 0xC7, :KP_DBLAMPERSAND => 0xC8, :KP_VERTICALBAR => 0xC9, :KP_DBLVERTICALBAR => 0xCA, + :KP_COLON => 0xCB, :KP_HASH => 0xCC, :KP_SPACE => 0xCD, :KP_AT => 0xCE, + :KP_EXCLAM => 0xCF, :KP_MEMSTORE => 0xD0, :KP_MEMRECALL => 0xD1, :KP_MEMCLEAR => 0xD2, + :KP_MEMADD => 0xD3, :KP_MEMSUBTRACT => 0xD4, :KP_MEMMULTIPLY => 0xD5, :KP_MEMDIVIDE => 0xD6, + :KP_PLUSMINUS => 0xD7, :KP_CLEAR => 0xD8, :KP_CLEARENTRY => 0xD9, :KP_BINARY => 0xDA, + :KP_OCTAL => 0xDB, :KP_DECIMAL => 0xDC, :KP_HEXADECIMAL => 0xDD, :LCTRL => 0xE0, + :LSHIFT => 0xE1, :LALT => 0xE2, :LGUI => 0xE3, :RCTRL => 0xE4, + :RSHIFT => 0xE5, :RALT => 0xE6, :RGUI => 0xE7, :MODE => 0x101, + :AUDIONEXT => 0x102, :AUDIOPREV => 0x103, :AUDIOSTOP => 0x104, :AUDIOPLAY => 0x105, + :AUDIOMUTE => 0x106, :MEDIASELECT => 0x107, :WWW => 0x108, :MAIL => 0x109, + :CALCULATOR => 0x10A, :COMPUTER => 0x10B, :AC_SEARCH => 0x10C, :AC_HOME => 0x10D, + :AC_BACK => 0x10E, :AC_FORWARD => 0x10F, :AC_STOP => 0x110, :AC_REFRESH => 0x111, + :AC_BOOKMARKS => 0x112, :BRIGHTNESSDOWN => 0x113, :BRIGHTNESSUP => 0x114, :DISPLAYSWITCH => 0x115, + :KBDILLUMTOGGLE => 0x116, :KBDILLUMDOWN => 0x117, :KBDILLUMUP => 0x118, :EJECT => 0x119, + :SLEEP => 0x11A, :APP1 => 0x11B, :APP2 => 0x11C, +} diff --git a/doc/extension_doc.md b/doc/extension_doc.md new file mode 100644 index 0000000..eb13843 --- /dev/null +++ b/doc/extension_doc.md @@ -0,0 +1,23 @@ +# mkxp extenions for Dancing Dragon Games / Symphony of War + +## Graphics.resize_window(width, height, recenter) +width: Integer +height: Integer +recenter: Boolean, false by default +returns: nil + +Resizes the game window to width x height. If `recenter` is **true**, also center the window on the current screen. + +## Bitmap.write_to_png(filename) +filename: String +returns: self + +Writes the contents of the bitmap to `filename`, in PNG format. + +## Input.scroll_v() +returns: Integer + +Returns the cumulative amount of scroll events (negative if down, positive if up) inbetween the current and last `Input.update` call. + +## Arbitrary key states +Use `MKXP.raw_key_states` to get the current byte array of keystates, then call `#getbyte(scancode)` with `scancode` being one of the constants defined in `SDL_scancode_map.rb`. **0** means the key is released, **1** that it is pressed. From 5d38b1f81301ea29e28e554f716a43a865a590b9 Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Sat, 6 Nov 2021 06:33:25 +0100 Subject: [PATCH 13/27] doc: Add MKXP.data_directory --- doc/extension_doc.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/doc/extension_doc.md b/doc/extension_doc.md index eb13843..1e14f44 100644 --- a/doc/extension_doc.md +++ b/doc/extension_doc.md @@ -19,5 +19,16 @@ returns: Integer Returns the cumulative amount of scroll events (negative if down, positive if up) inbetween the current and last `Input.update` call. +## MKXP.data_directory() +returns: String + +Provides a PC-user-dependant, game-specific path to a writable directory, intended for save states, configuration and similar. +In `mkxp.conf`, both `dataPathOrg` and `dataPathApp` keys need to be set, otherwise it returns a generic directory shared by all mkxp games. It is recommended (though not required) to not put any spaces in the config strings. +Real life example: +``` +dataPathOrg=dancingdragon +dataPathApp=skyborn +``` + ## Arbitrary key states Use `MKXP.raw_key_states` to get the current byte array of keystates, then call `#getbyte(scancode)` with `scancode` being one of the constants defined in `SDL_scancode_map.rb`. **0** means the key is released, **1** that it is pressed. From e156421b3bccd3f84f3c6131255c17312f6f69c0 Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Sun, 23 Jan 2022 21:49:29 +0100 Subject: [PATCH 14/27] Input: Expose mouse X1 and X2 buttons --- binding-mri/input-binding.cpp | 4 +++- doc/extension_doc.md | 4 ++++ src/input.cpp | 8 +++++--- src/input.h | 3 ++- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/binding-mri/input-binding.cpp b/binding-mri/input-binding.cpp index 41f3ce1..18e161a 100644 --- a/binding-mri/input-binding.cpp +++ b/binding-mri/input-binding.cpp @@ -156,7 +156,9 @@ static buttonCodes[] = { "MOUSELEFT", Input::MouseLeft }, { "MOUSEMIDDLE", Input::MouseMiddle }, - { "MOUSERIGHT", Input::MouseRight } + { "MOUSERIGHT", Input::MouseRight }, + { "MOUSEX1", Input::MouseX1 }, + { "MOUSEX2", Input::MouseX2 } }; static elementsN(buttonCodes); diff --git a/doc/extension_doc.md b/doc/extension_doc.md index 1e14f44..98085a8 100644 --- a/doc/extension_doc.md +++ b/doc/extension_doc.md @@ -19,6 +19,10 @@ returns: Integer Returns the cumulative amount of scroll events (negative if down, positive if up) inbetween the current and last `Input.update` call. +## Input::MOUSEX1 / ::MOUSEX2 + +These two constants representing two extra mouse buttons can be passed to the familiar #press?/#trigger?/#repeat? functions. + ## MKXP.data_directory() returns: String diff --git a/src/input.cpp b/src/input.cpp index f025b5c..1dcbe55 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -34,7 +34,7 @@ #include #include -#define BUTTON_CODE_COUNT 24 +#define BUTTON_CODE_COUNT 26 struct ButtonState { @@ -237,7 +237,7 @@ static const int mapToIndex[] = 0, 16, 17, 18, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, - 21, 22, 23 + 21, 22, 23, 24, 25 }; static elementsN(mapToIndex); @@ -465,12 +465,14 @@ struct InputPrivate void initMsBindings() { - msBindings.resize(3); + msBindings.resize(5); size_t i = 0; msBindings[i++] = MsBinding(SDL_BUTTON_LEFT, Input::MouseLeft); msBindings[i++] = MsBinding(SDL_BUTTON_MIDDLE, Input::MouseMiddle); msBindings[i++] = MsBinding(SDL_BUTTON_RIGHT, Input::MouseRight); + msBindings[i++] = MsBinding(SDL_BUTTON_X1, Input::MouseX1); + msBindings[i++] = MsBinding(SDL_BUTTON_X2, Input::MouseX2); } void pollBindings(Input::ButtonCode &repeatCand) diff --git a/src/input.h b/src/input.h index 1433855..a181919 100644 --- a/src/input.h +++ b/src/input.h @@ -43,7 +43,8 @@ public: F5 = 25, F6 = 26, F7 = 27, F8 = 28, F9 = 29, /* Non-standard extensions */ - MouseLeft = 38, MouseMiddle = 39, MouseRight = 40 + MouseLeft = 38, MouseMiddle = 39, MouseRight = 40, + MouseX1 = 41, MouseX2 = 42 }; void update(); From d71919c2c3876416ee486b374bb4558255e6130f Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Sun, 30 Jan 2022 12:22:06 +0100 Subject: [PATCH 15/27] Bitmap: Fix getPixel calls not using cached surface --- src/bitmap.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bitmap.cpp b/src/bitmap.cpp index cec61bb..a8d2aab 100644 --- a/src/bitmap.cpp +++ b/src/bitmap.cpp @@ -914,7 +914,8 @@ Color Bitmap::getPixel(int x, int y) const if (x < 0 || y < 0 || x >= width() || y >= height()) return Vec4(); - p->downloadToSurface(); + if (!p->surface) + p->downloadToSurface(); uint32_t pixel = getPixelAt(p->surface, p->format, x, y); From 3c6bc765c60932c90ca58b3ba89727f5d90560d0 Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Sun, 30 Jan 2022 12:23:20 +0100 Subject: [PATCH 16/27] EThread: Map mouse buttons 8,9 onto X1,X2 This makes the thumb button on my mouse usable under Linux, still have to check what button code they map to under Windows. --- src/eventthread.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/eventthread.cpp b/src/eventthread.cpp index ed95cf9..c0d6642 100644 --- a/src/eventthread.cpp +++ b/src/eventthread.cpp @@ -215,6 +215,9 @@ void EventThread::process(RGSSThreadData &rtData) { case SDL_MOUSEBUTTONDOWN : case SDL_MOUSEBUTTONUP : + if (event.button.button == 8 || event.button.button == 9) + event.button.button -= (8 - SDL_BUTTON_X1); + case SDL_MOUSEMOTION : if (event.button.which == SDL_TOUCH_MOUSEID) continue; From 1c2dc115b85a346ce1301af5098e92ea58d43dd4 Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Sun, 30 Jan 2022 12:36:37 +0100 Subject: [PATCH 17/27] Graphics: Reset scissor box on screen resize Fixes Ancurio/mkxp#248. --- src/glstate.cpp | 2 +- src/graphics.cpp | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/glstate.cpp b/src/glstate.cpp index 0fbcdc6..a4b4d09 100644 --- a/src/glstate.cpp +++ b/src/glstate.cpp @@ -119,7 +119,7 @@ GLState::GLState(const Config &conf) blendMode.init(BlendNormal); blend.init(true); scissorTest.init(false); - scissorBox.init(IntRect(0, 0, 640, 480)); + scissorBox.init(IntRect()); program.init(0); if (conf.maxTextureSize > 0) diff --git a/src/graphics.cpp b/src/graphics.cpp index f13f950..1322d23 100644 --- a/src/graphics.cpp +++ b/src/graphics.cpp @@ -152,6 +152,7 @@ public: pp.startRender(); glState.viewport.set(IntRect(0, 0, w, h)); + glState.scissorBox.pushSet(IntRect(0, 0, w, h)); FBO::clear(); @@ -166,6 +167,8 @@ public: brightnessQuad.draw(); } + + glState.scissorBox.pop(); } void requestViewportRender(const Vec4 &c, const Vec4 &f, const Vec4 &t) From a65163952417c86960f8a10436b2d3dcf6059cbe Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Tue, 1 Feb 2022 21:47:07 +0100 Subject: [PATCH 18/27] Bitmap: Add #v_flip / #h_flip methods --- binding-mri/bitmap-binding.cpp | 24 +++++++++++++++++++ doc/extension_doc.md | 5 ++++ src/bitmap.cpp | 44 ++++++++++++++++++++++++++++++++++ src/bitmap.h | 3 +++ 4 files changed, 76 insertions(+) diff --git a/binding-mri/bitmap-binding.cpp b/binding-mri/bitmap-binding.cpp index 11a0697..4a31d1f 100644 --- a/binding-mri/bitmap-binding.cpp +++ b/binding-mri/bitmap-binding.cpp @@ -445,6 +445,28 @@ RB_METHOD(bitmapWriteToPng) return self; } +RB_METHOD(bitmapVFlip) +{ + RB_UNUSED_PARAM; + + Bitmap *b = getPrivateData(self); + + b->vFlip(); + + return Qnil; +} + +RB_METHOD(bitmapHFlip) +{ + RB_UNUSED_PARAM; + + Bitmap *b = getPrivateData(self); + + b->hFlip(); + + return Qnil; +} + void bitmapBindingInit() @@ -479,6 +501,8 @@ bitmapBindingInit() } _rb_define_method(klass, "write_to_png", bitmapWriteToPng); + _rb_define_method(klass, "v_flip", bitmapVFlip); + _rb_define_method(klass, "h_flip", bitmapHFlip); INIT_PROP_BIND(Bitmap, Font, "font"); } diff --git a/doc/extension_doc.md b/doc/extension_doc.md index 98085a8..9a3caa7 100644 --- a/doc/extension_doc.md +++ b/doc/extension_doc.md @@ -14,6 +14,11 @@ returns: self Writes the contents of the bitmap to `filename`, in PNG format. +## Bitmap.v_flip() / .h_flip() +returns: nil + +Flips the bitmap image vertically / horizontally. + ## Input.scroll_v() returns: Integer diff --git a/src/bitmap.cpp b/src/bitmap.cpp index a8d2aab..bebb8b0 100644 --- a/src/bitmap.cpp +++ b/src/bitmap.cpp @@ -259,6 +259,34 @@ struct BitmapPrivate glState.viewport.pop(); } + + void flip(const IntRect &srcRect) + { + TEXFBO newTex = shState->texPool().request(gl.width, gl.height); + + SimpleShader &shader = shState->shaders().simple; + shader.bind(); + shader.setTexOffsetX(0); + bindTexture(shader); + + Quad &quad = shState->gpQuad(); + quad.setTexPosRect(srcRect, IntRect(0, 0, gl.width, gl.height)); + quad.setColor(Vec4(1, 1, 1, 1)); + + glState.blend.pushSet(false); + pushSetViewport(shader); + + FBO::bind(newTex.fbo); + blitQuad(quad); + + popViewport(); + glState.blend.pop(); + + shState->texPool().release(gl); + gl = newTex; + + onModified(); + } }; struct BitmapOpenHandler : FileSystem::OpenHandler @@ -1410,6 +1438,22 @@ void Bitmap::writeToPng(const char *filename) IMG_SavePNG(p->surface, filename); } +void Bitmap::vFlip() +{ + guardDisposed(); + GUARD_MEGA; + + p->flip(IntRect(0, p->gl.height, p->gl.width, -p->gl.height)); +} + +void Bitmap::hFlip() +{ + guardDisposed(); + GUARD_MEGA; + + p->flip(IntRect(p->gl.width, 0, -p->gl.width, p->gl.height)); +} + TEXFBO &Bitmap::getGLTypes() { return p->gl; diff --git a/src/bitmap.h b/src/bitmap.h index 68bb7f9..ed0a749 100644 --- a/src/bitmap.h +++ b/src/bitmap.h @@ -108,6 +108,9 @@ public: /* extensions */ void writeToPng(const char *filename); + void vFlip(); + void hFlip(); + /* */ TEXFBO &getGLTypes(); SDL_Surface *megaSurface() const; From 985cf1ad4bfcec89662805b2148f0bcc0a0edf98 Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Tue, 1 Feb 2022 21:56:10 +0100 Subject: [PATCH 19/27] doc: Add MKXP.mouse_in_window --- doc/extension_doc.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/extension_doc.md b/doc/extension_doc.md index 9a3caa7..3edf81f 100644 --- a/doc/extension_doc.md +++ b/doc/extension_doc.md @@ -39,5 +39,10 @@ dataPathOrg=dancingdragon dataPathApp=skyborn ``` +## MKXP.mouse_in_window() +returns: Boolean + +Returns true if the mouse cursor is currently within the game window, false otherwise. + ## Arbitrary key states Use `MKXP.raw_key_states` to get the current byte array of keystates, then call `#getbyte(scancode)` with `scancode` being one of the constants defined in `SDL_scancode_map.rb`. **0** means the key is released, **1** that it is pressed. From 8bdbef1137b9cd3c03cd84a8ae6c00eb44445f78 Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Tue, 1 Feb 2022 22:03:14 +0100 Subject: [PATCH 20/27] Add bash-friendly source file listings --- sources.def | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 sources.def diff --git a/sources.def b/sources.def new file mode 100644 index 0000000..53104b9 --- /dev/null +++ b/sources.def @@ -0,0 +1,100 @@ +SOURCES=( + src/main.cpp + src/audio.cpp + src/bitmap.cpp + src/eventthread.cpp + src/filesystem.cpp + src/font.cpp + src/iniconfig.cpp + src/input.cpp + src/plane.cpp + src/scene.cpp + src/sprite.cpp + src/table.cpp + src/tilequad.cpp + src/viewport.cpp + src/window.cpp + src/texpool.cpp + src/shader.cpp + src/glstate.cpp + src/tilemap.cpp + src/autotiles.cpp + src/graphics.cpp + src/gl-debug.cpp + src/etc.cpp + src/config.cpp + src/settingsmenu.cpp + src/keybindings.cpp + src/tileatlas.cpp + src/sharedstate.cpp + src/gl-fun.cpp + src/gl-meta.cpp + src/vertex.cpp + src/soundemitter.cpp + src/sdlsoundsource.cpp + src/alstream.cpp + src/audiostream.cpp + src/rgssad.cpp + src/bundledfont.cpp + src/vorbissource.cpp + src/windowvx.cpp + src/tilemapvx.cpp + src/tileatlasvx.cpp + src/autotilesvx.cpp + src/midisource.cpp + src/fluid-fun.cpp +) + +SOURCES_C=( + steamshim/steamshim_child.c +) + +MRI_SOURCES=( + binding-mri/binding-mri.cpp + binding-mri/binding-util.cpp + binding-mri/table-binding.cpp + binding-mri/etc-binding.cpp + binding-mri/bitmap-binding.cpp + binding-mri/font-binding.cpp + binding-mri/graphics-binding.cpp + binding-mri/input-binding.cpp + binding-mri/sprite-binding.cpp + binding-mri/viewport-binding.cpp + binding-mri/plane-binding.cpp + binding-mri/window-binding.cpp + binding-mri/tilemap-binding.cpp + binding-mri/audio-binding.cpp + binding-mri/module_rpg.cpp + binding-mri/filesystem-binding.cpp + binding-mri/windowvx-binding.cpp + binding-mri/tilemapvx-binding.cpp +) + +EMBED=( + shader/common.h + shader/transSimple.frag + shader/trans.frag + shader/hue.frag + shader/sprite.frag + shader/plane.frag + shader/gray.frag + shader/bitmapBlit.frag + shader/flatColor.frag + shader/simple.frag + shader/simpleColor.frag + shader/simpleAlpha.frag + shader/simpleAlphaUni.frag + shader/flashMap.frag + shader/minimal.vert + shader/simple.vert + shader/simpleColor.vert + shader/sprite.vert + shader/tilemap.vert + shader/blur.frag + shader/blurH.vert + shader/blurV.vert + shader/simpleMatrix.vert + shader/tilemapvx.vert + assets/liberation.ttf + assets/icon.png +) From ab24f0fc74c7ca9b2dfa7ca389ce6ed5501ad286 Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Sat, 16 Oct 2021 22:56:17 +0200 Subject: [PATCH 21/27] Update copyright notice again Keep information on first file creation year, and update my email address yet again. --- binding-mri/audio-binding.cpp | 2 +- binding-mri/binding-mri.cpp | 2 +- binding-mri/binding-types.h | 2 +- binding-mri/binding-util.cpp | 2 +- binding-mri/binding-util.h | 2 +- binding-mri/bitmap-binding.cpp | 2 +- binding-mri/disposable-binding.h | 2 +- binding-mri/etc-binding.cpp | 2 +- binding-mri/filesystem-binding.cpp | 2 +- binding-mri/flashable-binding.h | 2 +- binding-mri/font-binding.cpp | 2 +- binding-mri/graphics-binding.cpp | 2 +- binding-mri/input-binding.cpp | 2 +- binding-mri/plane-binding.cpp | 2 +- binding-mri/sceneelement-binding.h | 2 +- binding-mri/serializable-binding.h | 2 +- binding-mri/sprite-binding.cpp | 2 +- binding-mri/table-binding.cpp | 2 +- binding-mri/tilemap-binding.cpp | 2 +- binding-mri/tilemapvx-binding.cpp | 2 +- binding-mri/viewport-binding.cpp | 2 +- binding-mri/viewportelement-binding.h | 2 +- binding-mri/window-binding.cpp | 2 +- binding-mri/windowvx-binding.cpp | 2 +- binding-mruby/audio-binding.cpp | 2 +- binding-mruby/binding-mruby.cpp | 2 +- binding-mruby/binding-types.h | 2 +- binding-mruby/binding-util.cpp | 2 +- binding-mruby/binding-util.h | 2 +- binding-mruby/bitmap-binding.cpp | 2 +- binding-mruby/disposable-binding.h | 2 +- binding-mruby/etc-binding.cpp | 2 +- binding-mruby/flashable-binding.h | 2 +- binding-mruby/font-binding.cpp | 2 +- binding-mruby/graphics-binding.cpp | 2 +- binding-mruby/input-binding.cpp | 2 +- binding-mruby/mrb-ext/file.cpp | 2 +- binding-mruby/mrb-ext/file.h | 2 +- binding-mruby/mrb-ext/kernel.cpp | 2 +- binding-mruby/mrb-ext/marshal.cpp | 2 +- binding-mruby/mrb-ext/marshal.h | 2 +- binding-mruby/mrb-ext/rwmem.cpp | 2 +- binding-mruby/mrb-ext/rwmem.h | 2 +- binding-mruby/mrb-ext/time.cpp | 2 +- binding-mruby/plane-binding.cpp | 2 +- binding-mruby/sceneelement-binding.h | 2 +- binding-mruby/serializable-binding.h | 2 +- binding-mruby/sprite-binding.cpp | 2 +- binding-mruby/table-binding.cpp | 2 +- binding-mruby/tilemap-binding.cpp | 2 +- binding-mruby/viewport-binding.cpp | 2 +- binding-mruby/viewportelement-binding.h | 2 +- binding-mruby/window-binding.cpp | 2 +- binding-null/binding-null.cpp | 2 +- src/al-util.h | 2 +- src/aldatasource.h | 2 +- src/alstream.cpp | 2 +- src/alstream.h | 2 +- src/audio.cpp | 2 +- src/audio.h | 2 +- src/audiostream.cpp | 2 +- src/audiostream.h | 2 +- src/binding.h | 2 +- src/bitmap.cpp | 2 +- src/bitmap.h | 2 +- src/boost-hash.h | 2 +- src/config.cpp | 2 +- src/config.h | 2 +- src/debugwriter.h | 2 +- src/disposable.h | 2 +- src/etc-internal.h | 2 +- src/etc.cpp | 2 +- src/etc.h | 2 +- src/eventthread.cpp | 2 +- src/eventthread.h | 2 +- src/exception.h | 2 +- src/filesystem.cpp | 2 +- src/filesystem.h | 2 +- src/flashable.h | 2 +- src/font.cpp | 2 +- src/font.h | 2 +- src/gl-debug.cpp | 2 +- src/gl-debug.h | 2 +- src/gl-fun.cpp | 2 +- src/gl-fun.h | 2 +- src/gl-meta.cpp | 2 +- src/gl-meta.h | 2 +- src/gl-util.h | 2 +- src/global-ibo.h | 2 +- src/glstate.cpp | 2 +- src/glstate.h | 2 +- src/graphics.cpp | 2 +- src/graphics.h | 2 +- src/input.cpp | 2 +- src/input.h | 2 +- src/intrulist.h | 2 +- src/keybindings.cpp | 2 +- src/keybindings.h | 2 +- src/main.cpp | 2 +- src/midisource.cpp | 2 +- src/plane.cpp | 2 +- src/plane.h | 2 +- src/quad.h | 2 +- src/quadarray.h | 2 +- src/rgssad.cpp | 2 +- src/rgssad.h | 2 +- src/scene.cpp | 2 +- src/scene.h | 2 +- src/sdlsoundsource.cpp | 2 +- src/serial-util.h | 2 +- src/serializable.h | 2 +- src/settingsmenu.cpp | 2 +- src/settingsmenu.h | 2 +- src/shader.cpp | 2 +- src/shader.h | 2 +- src/sharedmidistate.h | 2 +- src/sharedstate.cpp | 2 +- src/sharedstate.h | 2 +- src/soundemitter.cpp | 2 +- src/soundemitter.h | 2 +- src/sprite.cpp | 2 +- src/sprite.h | 2 +- src/table.cpp | 2 +- src/table.h | 2 +- src/texpool.cpp | 2 +- src/texpool.h | 2 +- src/tileatlas.cpp | 2 +- src/tileatlas.h | 2 +- src/tileatlasvx.cpp | 2 +- src/tileatlasvx.h | 2 +- src/tilemap-common.h | 2 +- src/tilemap.cpp | 2 +- src/tilemap.h | 2 +- src/tilemapvx.cpp | 2 +- src/tilemapvx.h | 2 +- src/tilequad.cpp | 2 +- src/tilequad.h | 2 +- src/transform.h | 2 +- src/util.h | 2 +- src/vertex.cpp | 2 +- src/vertex.h | 2 +- src/viewport.cpp | 2 +- src/viewport.h | 2 +- src/vorbissource.cpp | 2 +- src/window.cpp | 2 +- src/window.h | 2 +- src/windowvx.cpp | 2 +- src/windowvx.h | 2 +- 148 files changed, 148 insertions(+), 148 deletions(-) diff --git a/binding-mri/audio-binding.cpp b/binding-mri/audio-binding.cpp index 7a4b2d1..1d5e275 100644 --- a/binding-mri/audio-binding.cpp +++ b/binding-mri/audio-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/binding-mri.cpp b/binding-mri/binding-mri.cpp index d166771..a4fb501 100644 --- a/binding-mri/binding-mri.cpp +++ b/binding-mri/binding-mri.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/binding-types.h b/binding-mri/binding-types.h index 5d97546..ff9e991 100644 --- a/binding-mri/binding-types.h +++ b/binding-mri/binding-types.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/binding-util.cpp b/binding-mri/binding-util.cpp index 1eab074..a34f122 100644 --- a/binding-mri/binding-util.cpp +++ b/binding-mri/binding-util.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/binding-util.h b/binding-mri/binding-util.h index 17e6757..9fdea05 100644 --- a/binding-mri/binding-util.h +++ b/binding-mri/binding-util.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/bitmap-binding.cpp b/binding-mri/bitmap-binding.cpp index 4a31d1f..3581688 100644 --- a/binding-mri/bitmap-binding.cpp +++ b/binding-mri/bitmap-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/disposable-binding.h b/binding-mri/disposable-binding.h index a90f5ec..2aaa27f 100644 --- a/binding-mri/disposable-binding.h +++ b/binding-mri/disposable-binding.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/etc-binding.cpp b/binding-mri/etc-binding.cpp index 20f90f1..730acb4 100644 --- a/binding-mri/etc-binding.cpp +++ b/binding-mri/etc-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/filesystem-binding.cpp b/binding-mri/filesystem-binding.cpp index a9449af..39b6be3 100644 --- a/binding-mri/filesystem-binding.cpp +++ b/binding-mri/filesystem-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/flashable-binding.h b/binding-mri/flashable-binding.h index 60a344b..3389eb6 100644 --- a/binding-mri/flashable-binding.h +++ b/binding-mri/flashable-binding.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/font-binding.cpp b/binding-mri/font-binding.cpp index 006a2df..b2a6a7f 100644 --- a/binding-mri/font-binding.cpp +++ b/binding-mri/font-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/graphics-binding.cpp b/binding-mri/graphics-binding.cpp index 0ac9274..87cb89c 100644 --- a/binding-mri/graphics-binding.cpp +++ b/binding-mri/graphics-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/input-binding.cpp b/binding-mri/input-binding.cpp index 18e161a..ea9bae3 100644 --- a/binding-mri/input-binding.cpp +++ b/binding-mri/input-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/plane-binding.cpp b/binding-mri/plane-binding.cpp index 33f2d9b..7818f76 100644 --- a/binding-mri/plane-binding.cpp +++ b/binding-mri/plane-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/sceneelement-binding.h b/binding-mri/sceneelement-binding.h index c191ee4..da51a97 100644 --- a/binding-mri/sceneelement-binding.h +++ b/binding-mri/sceneelement-binding.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/serializable-binding.h b/binding-mri/serializable-binding.h index 3082705..12e897b 100644 --- a/binding-mri/serializable-binding.h +++ b/binding-mri/serializable-binding.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/sprite-binding.cpp b/binding-mri/sprite-binding.cpp index 0142756..bdee863 100644 --- a/binding-mri/sprite-binding.cpp +++ b/binding-mri/sprite-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/table-binding.cpp b/binding-mri/table-binding.cpp index 33d657e..12643f5 100644 --- a/binding-mri/table-binding.cpp +++ b/binding-mri/table-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/tilemap-binding.cpp b/binding-mri/tilemap-binding.cpp index 970ad58..b9e414c 100644 --- a/binding-mri/tilemap-binding.cpp +++ b/binding-mri/tilemap-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/tilemapvx-binding.cpp b/binding-mri/tilemapvx-binding.cpp index 9fd5a82..56e9642 100644 --- a/binding-mri/tilemapvx-binding.cpp +++ b/binding-mri/tilemapvx-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/viewport-binding.cpp b/binding-mri/viewport-binding.cpp index 1292b8c..051890a 100644 --- a/binding-mri/viewport-binding.cpp +++ b/binding-mri/viewport-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/viewportelement-binding.h b/binding-mri/viewportelement-binding.h index 4d9e7ae..362845d 100644 --- a/binding-mri/viewportelement-binding.h +++ b/binding-mri/viewportelement-binding.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/window-binding.cpp b/binding-mri/window-binding.cpp index 3ea28c8..99fceab 100644 --- a/binding-mri/window-binding.cpp +++ b/binding-mri/window-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mri/windowvx-binding.cpp b/binding-mri/windowvx-binding.cpp index 889707b..d25c043 100644 --- a/binding-mri/windowvx-binding.cpp +++ b/binding-mri/windowvx-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/audio-binding.cpp b/binding-mruby/audio-binding.cpp index 9b9981c..127dab0 100644 --- a/binding-mruby/audio-binding.cpp +++ b/binding-mruby/audio-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/binding-mruby.cpp b/binding-mruby/binding-mruby.cpp index b2d7fcf..4636574 100644 --- a/binding-mruby/binding-mruby.cpp +++ b/binding-mruby/binding-mruby.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/binding-types.h b/binding-mruby/binding-types.h index 5d97546..ff9e991 100644 --- a/binding-mruby/binding-types.h +++ b/binding-mruby/binding-types.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/binding-util.cpp b/binding-mruby/binding-util.cpp index f405bf8..a3cf3aa 100644 --- a/binding-mruby/binding-util.cpp +++ b/binding-mruby/binding-util.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/binding-util.h b/binding-mruby/binding-util.h index 765887d..3025174 100644 --- a/binding-mruby/binding-util.h +++ b/binding-mruby/binding-util.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/bitmap-binding.cpp b/binding-mruby/bitmap-binding.cpp index 16f9ce4..f65f7dc 100644 --- a/binding-mruby/bitmap-binding.cpp +++ b/binding-mruby/bitmap-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/disposable-binding.h b/binding-mruby/disposable-binding.h index 2edafd1..4933e0e 100644 --- a/binding-mruby/disposable-binding.h +++ b/binding-mruby/disposable-binding.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/etc-binding.cpp b/binding-mruby/etc-binding.cpp index 9cc4580..7fa0582 100644 --- a/binding-mruby/etc-binding.cpp +++ b/binding-mruby/etc-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/flashable-binding.h b/binding-mruby/flashable-binding.h index a7a124a..e471fd2 100644 --- a/binding-mruby/flashable-binding.h +++ b/binding-mruby/flashable-binding.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/font-binding.cpp b/binding-mruby/font-binding.cpp index 0aed999..1450534 100644 --- a/binding-mruby/font-binding.cpp +++ b/binding-mruby/font-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/graphics-binding.cpp b/binding-mruby/graphics-binding.cpp index d4e3b5e..f33c601 100644 --- a/binding-mruby/graphics-binding.cpp +++ b/binding-mruby/graphics-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/input-binding.cpp b/binding-mruby/input-binding.cpp index 1835f9f..0735480 100644 --- a/binding-mruby/input-binding.cpp +++ b/binding-mruby/input-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/mrb-ext/file.cpp b/binding-mruby/mrb-ext/file.cpp index acddafc..4c4d5d8 100644 --- a/binding-mruby/mrb-ext/file.cpp +++ b/binding-mruby/mrb-ext/file.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/mrb-ext/file.h b/binding-mruby/mrb-ext/file.h index b5fd641..2203032 100644 --- a/binding-mruby/mrb-ext/file.h +++ b/binding-mruby/mrb-ext/file.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/mrb-ext/kernel.cpp b/binding-mruby/mrb-ext/kernel.cpp index b642ca3..704b95d 100644 --- a/binding-mruby/mrb-ext/kernel.cpp +++ b/binding-mruby/mrb-ext/kernel.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/mrb-ext/marshal.cpp b/binding-mruby/mrb-ext/marshal.cpp index a3403f9..3fbb869 100644 --- a/binding-mruby/mrb-ext/marshal.cpp +++ b/binding-mruby/mrb-ext/marshal.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/mrb-ext/marshal.h b/binding-mruby/mrb-ext/marshal.h index fa79c99..ffb56bc 100644 --- a/binding-mruby/mrb-ext/marshal.h +++ b/binding-mruby/mrb-ext/marshal.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/mrb-ext/rwmem.cpp b/binding-mruby/mrb-ext/rwmem.cpp index c6f7778..1f832e0 100644 --- a/binding-mruby/mrb-ext/rwmem.cpp +++ b/binding-mruby/mrb-ext/rwmem.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/mrb-ext/rwmem.h b/binding-mruby/mrb-ext/rwmem.h index 4736b82..4a8f8b3 100644 --- a/binding-mruby/mrb-ext/rwmem.h +++ b/binding-mruby/mrb-ext/rwmem.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/mrb-ext/time.cpp b/binding-mruby/mrb-ext/time.cpp index c9e6ca1..784fc75 100644 --- a/binding-mruby/mrb-ext/time.cpp +++ b/binding-mruby/mrb-ext/time.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/plane-binding.cpp b/binding-mruby/plane-binding.cpp index fafc3fe..a84db8f 100644 --- a/binding-mruby/plane-binding.cpp +++ b/binding-mruby/plane-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/sceneelement-binding.h b/binding-mruby/sceneelement-binding.h index b2f4baa..d35c4e4 100644 --- a/binding-mruby/sceneelement-binding.h +++ b/binding-mruby/sceneelement-binding.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/serializable-binding.h b/binding-mruby/serializable-binding.h index 35c7e0b..170b06f 100644 --- a/binding-mruby/serializable-binding.h +++ b/binding-mruby/serializable-binding.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/sprite-binding.cpp b/binding-mruby/sprite-binding.cpp index fd8e65d..f89baca 100644 --- a/binding-mruby/sprite-binding.cpp +++ b/binding-mruby/sprite-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/table-binding.cpp b/binding-mruby/table-binding.cpp index 3e63cc7..cb4297f 100644 --- a/binding-mruby/table-binding.cpp +++ b/binding-mruby/table-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/tilemap-binding.cpp b/binding-mruby/tilemap-binding.cpp index 527fe9c..dff3704 100644 --- a/binding-mruby/tilemap-binding.cpp +++ b/binding-mruby/tilemap-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/viewport-binding.cpp b/binding-mruby/viewport-binding.cpp index 304c268..6dd5fdd 100644 --- a/binding-mruby/viewport-binding.cpp +++ b/binding-mruby/viewport-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/viewportelement-binding.h b/binding-mruby/viewportelement-binding.h index 315faf0..a52a3f2 100644 --- a/binding-mruby/viewportelement-binding.h +++ b/binding-mruby/viewportelement-binding.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-mruby/window-binding.cpp b/binding-mruby/window-binding.cpp index a434ea9..4f526ac 100644 --- a/binding-mruby/window-binding.cpp +++ b/binding-mruby/window-binding.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/binding-null/binding-null.cpp b/binding-null/binding-null.cpp index 9353212..c686152 100644 --- a/binding-null/binding-null.cpp +++ b/binding-null/binding-null.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/al-util.h b/src/al-util.h index f93ed3f..58f888b 100644 --- a/src/al-util.h +++ b/src/al-util.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/aldatasource.h b/src/aldatasource.h index f46fc58..94dea90 100644 --- a/src/aldatasource.h +++ b/src/aldatasource.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/alstream.cpp b/src/alstream.cpp index 72675bc..1a8d73c 100644 --- a/src/alstream.cpp +++ b/src/alstream.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/alstream.h b/src/alstream.h index 12a7f28..7391c4b 100644 --- a/src/alstream.h +++ b/src/alstream.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/audio.cpp b/src/audio.cpp index b83ffed..19a4dee 100644 --- a/src/audio.cpp +++ b/src/audio.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/audio.h b/src/audio.h index 75cbc3f..ea74d78 100644 --- a/src/audio.h +++ b/src/audio.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/audiostream.cpp b/src/audiostream.cpp index dec70a8..42a995f 100644 --- a/src/audiostream.cpp +++ b/src/audiostream.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/audiostream.h b/src/audiostream.h index 2233a50..de7eb63 100644 --- a/src/audiostream.h +++ b/src/audiostream.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/binding.h b/src/binding.h index 49b143e..7040263 100644 --- a/src/binding.h +++ b/src/binding.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/bitmap.cpp b/src/bitmap.cpp index bebb8b0..47b380e 100644 --- a/src/bitmap.cpp +++ b/src/bitmap.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/bitmap.h b/src/bitmap.h index ed0a749..2522527 100644 --- a/src/bitmap.h +++ b/src/bitmap.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/boost-hash.h b/src/boost-hash.h index de41de3..39b6eaa 100644 --- a/src/boost-hash.h +++ b/src/boost-hash.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/config.cpp b/src/config.cpp index aee2517..0bed41a 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/config.h b/src/config.h index 2925a99..98d9b2d 100644 --- a/src/config.h +++ b/src/config.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/debugwriter.h b/src/debugwriter.h index 39cf537..da12825 100644 --- a/src/debugwriter.h +++ b/src/debugwriter.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/disposable.h b/src/disposable.h index 5bb1d68..432687b 100644 --- a/src/disposable.h +++ b/src/disposable.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/etc-internal.h b/src/etc-internal.h index c592423..5ddce74 100644 --- a/src/etc-internal.h +++ b/src/etc-internal.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/etc.cpp b/src/etc.cpp index 26e6635..5af7739 100644 --- a/src/etc.cpp +++ b/src/etc.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/etc.h b/src/etc.h index 463b890..bd3470d 100644 --- a/src/etc.h +++ b/src/etc.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/eventthread.cpp b/src/eventthread.cpp index c0d6642..12d7406 100644 --- a/src/eventthread.cpp +++ b/src/eventthread.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/eventthread.h b/src/eventthread.h index f36a56c..2ad7ec6 100644 --- a/src/eventthread.h +++ b/src/eventthread.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/exception.h b/src/exception.h index 94961a6..6f95b60 100644 --- a/src/exception.h +++ b/src/exception.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/filesystem.cpp b/src/filesystem.cpp index 5be8f83..60f050b 100644 --- a/src/filesystem.cpp +++ b/src/filesystem.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/filesystem.h b/src/filesystem.h index 71cdb1b..b4376a1 100644 --- a/src/filesystem.h +++ b/src/filesystem.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/flashable.h b/src/flashable.h index d0a9f0c..6876104 100644 --- a/src/flashable.h +++ b/src/flashable.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/font.cpp b/src/font.cpp index b9698dd..830c19a 100644 --- a/src/font.cpp +++ b/src/font.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/font.h b/src/font.h index 5341974..d514836 100644 --- a/src/font.h +++ b/src/font.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/gl-debug.cpp b/src/gl-debug.cpp index 46e04b3..d193c97 100644 --- a/src/gl-debug.cpp +++ b/src/gl-debug.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/gl-debug.h b/src/gl-debug.h index a37e2ba..5a7065b 100644 --- a/src/gl-debug.h +++ b/src/gl-debug.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/gl-fun.cpp b/src/gl-fun.cpp index a26419f..dd11458 100644 --- a/src/gl-fun.cpp +++ b/src/gl-fun.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/gl-fun.h b/src/gl-fun.h index c9bd148..64f8457 100644 --- a/src/gl-fun.h +++ b/src/gl-fun.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/gl-meta.cpp b/src/gl-meta.cpp index 2b930b5..8dd3af5 100644 --- a/src/gl-meta.cpp +++ b/src/gl-meta.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/gl-meta.h b/src/gl-meta.h index 52315ba..fd8cf8a 100644 --- a/src/gl-meta.h +++ b/src/gl-meta.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/gl-util.h b/src/gl-util.h index 3411683..945af78 100644 --- a/src/gl-util.h +++ b/src/gl-util.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/global-ibo.h b/src/global-ibo.h index 0604070..5781fbc 100644 --- a/src/global-ibo.h +++ b/src/global-ibo.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/glstate.cpp b/src/glstate.cpp index a4b4d09..59a2ee8 100644 --- a/src/glstate.cpp +++ b/src/glstate.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/glstate.h b/src/glstate.h index 7d68da5..f624408 100644 --- a/src/glstate.h +++ b/src/glstate.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/graphics.cpp b/src/graphics.cpp index 1322d23..80e7340 100644 --- a/src/graphics.cpp +++ b/src/graphics.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/graphics.h b/src/graphics.h index 940875d..7edd601 100644 --- a/src/graphics.h +++ b/src/graphics.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/input.cpp b/src/input.cpp index 1dcbe55..e58963d 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/input.h b/src/input.h index a181919..8f83dfd 100644 --- a/src/input.h +++ b/src/input.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/intrulist.h b/src/intrulist.h index e02ea40..6e087cd 100644 --- a/src/intrulist.h +++ b/src/intrulist.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/keybindings.cpp b/src/keybindings.cpp index 40962f7..46ff471 100644 --- a/src/keybindings.cpp +++ b/src/keybindings.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/keybindings.h b/src/keybindings.h index 63f3acb..cef4e8d 100644 --- a/src/keybindings.h +++ b/src/keybindings.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/main.cpp b/src/main.cpp index 8d359e7..3902970 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/midisource.cpp b/src/midisource.cpp index 9f98b50..431f07d 100644 --- a/src/midisource.cpp +++ b/src/midisource.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/plane.cpp b/src/plane.cpp index f2c0d43..58cb165 100644 --- a/src/plane.cpp +++ b/src/plane.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/plane.h b/src/plane.h index 9350eb3..70ff590 100644 --- a/src/plane.h +++ b/src/plane.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/quad.h b/src/quad.h index 77995c6..d200c6b 100644 --- a/src/quad.h +++ b/src/quad.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/quadarray.h b/src/quadarray.h index bf9778d..2d9e6cc 100644 --- a/src/quadarray.h +++ b/src/quadarray.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/rgssad.cpp b/src/rgssad.cpp index b4a0b99..edbdd8e 100644 --- a/src/rgssad.cpp +++ b/src/rgssad.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/rgssad.h b/src/rgssad.h index ab130de..8484804 100644 --- a/src/rgssad.h +++ b/src/rgssad.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/scene.cpp b/src/scene.cpp index 20190a7..21760aa 100644 --- a/src/scene.cpp +++ b/src/scene.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/scene.h b/src/scene.h index 1040aa6..0353e6a 100644 --- a/src/scene.h +++ b/src/scene.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/sdlsoundsource.cpp b/src/sdlsoundsource.cpp index 7ffd7c3..83bda06 100644 --- a/src/sdlsoundsource.cpp +++ b/src/sdlsoundsource.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/serial-util.h b/src/serial-util.h index 1b8d372..45a6bde 100644 --- a/src/serial-util.h +++ b/src/serial-util.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/serializable.h b/src/serializable.h index 6ab5919..65891d5 100644 --- a/src/serializable.h +++ b/src/serializable.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/settingsmenu.cpp b/src/settingsmenu.cpp index 694240c..6d66d3a 100644 --- a/src/settingsmenu.cpp +++ b/src/settingsmenu.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/settingsmenu.h b/src/settingsmenu.h index e972ade..a614192 100644 --- a/src/settingsmenu.h +++ b/src/settingsmenu.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/shader.cpp b/src/shader.cpp index 14a13ab..076eb74 100644 --- a/src/shader.cpp +++ b/src/shader.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/shader.h b/src/shader.h index 028bb59..b399527 100644 --- a/src/shader.h +++ b/src/shader.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/sharedmidistate.h b/src/sharedmidistate.h index 4fd7c08..f1fb35a 100644 --- a/src/sharedmidistate.h +++ b/src/sharedmidistate.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/sharedstate.cpp b/src/sharedstate.cpp index 6f22214..7bf6343 100644 --- a/src/sharedstate.cpp +++ b/src/sharedstate.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/sharedstate.h b/src/sharedstate.h index f2d51b4..827afaf 100644 --- a/src/sharedstate.h +++ b/src/sharedstate.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/soundemitter.cpp b/src/soundemitter.cpp index 7a3abd4..75f1b38 100644 --- a/src/soundemitter.cpp +++ b/src/soundemitter.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/soundemitter.h b/src/soundemitter.h index 338e144..1545b85 100644 --- a/src/soundemitter.h +++ b/src/soundemitter.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/sprite.cpp b/src/sprite.cpp index 8afad1c..292ea0f 100644 --- a/src/sprite.cpp +++ b/src/sprite.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/sprite.h b/src/sprite.h index 91c024a..84b73f2 100644 --- a/src/sprite.h +++ b/src/sprite.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/table.cpp b/src/table.cpp index c46313f..306c072 100644 --- a/src/table.cpp +++ b/src/table.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/table.h b/src/table.h index c63ddc7..4583b54 100644 --- a/src/table.h +++ b/src/table.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/texpool.cpp b/src/texpool.cpp index 2094585..37aab8b 100644 --- a/src/texpool.cpp +++ b/src/texpool.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/texpool.h b/src/texpool.h index 51d4bfd..e289840 100644 --- a/src/texpool.h +++ b/src/texpool.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/tileatlas.cpp b/src/tileatlas.cpp index 53c0a73..c79398c 100644 --- a/src/tileatlas.cpp +++ b/src/tileatlas.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/tileatlas.h b/src/tileatlas.h index 0a3fcdd..4959501 100644 --- a/src/tileatlas.h +++ b/src/tileatlas.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/tileatlasvx.cpp b/src/tileatlasvx.cpp index 7fc1222..116fc30 100644 --- a/src/tileatlasvx.cpp +++ b/src/tileatlasvx.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/tileatlasvx.h b/src/tileatlasvx.h index af6ffb1..e03017a 100644 --- a/src/tileatlasvx.h +++ b/src/tileatlasvx.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/tilemap-common.h b/src/tilemap-common.h index e49ec39..7c290e8 100644 --- a/src/tilemap-common.h +++ b/src/tilemap-common.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/tilemap.cpp b/src/tilemap.cpp index 30257da..1c3bb77 100644 --- a/src/tilemap.cpp +++ b/src/tilemap.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/tilemap.h b/src/tilemap.h index bb74459..91abbdc 100644 --- a/src/tilemap.h +++ b/src/tilemap.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/tilemapvx.cpp b/src/tilemapvx.cpp index 4abcb5a..d20f3b3 100644 --- a/src/tilemapvx.cpp +++ b/src/tilemapvx.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/tilemapvx.h b/src/tilemapvx.h index e28c9c3..17f1ed8 100644 --- a/src/tilemapvx.h +++ b/src/tilemapvx.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/tilequad.cpp b/src/tilequad.cpp index 76e5118..accf297 100644 --- a/src/tilequad.cpp +++ b/src/tilequad.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/tilequad.h b/src/tilequad.h index 2360681..96e3d71 100644 --- a/src/tilequad.h +++ b/src/tilequad.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/transform.h b/src/transform.h index 12c529a..6493bb4 100644 --- a/src/transform.h +++ b/src/transform.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. It is based on parts of "SFML 2.0" (license further below) ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/util.h b/src/util.h index 31d4099..661cd9d 100644 --- a/src/util.h +++ b/src/util.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/vertex.cpp b/src/vertex.cpp index 17283d4..59714a6 100644 --- a/src/vertex.cpp +++ b/src/vertex.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/vertex.h b/src/vertex.h index b448d2d..94dfe14 100644 --- a/src/vertex.h +++ b/src/vertex.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/viewport.cpp b/src/viewport.cpp index 8549465..ce17746 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/viewport.h b/src/viewport.h index 515d25d..65e176c 100644 --- a/src/viewport.h +++ b/src/viewport.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/vorbissource.cpp b/src/vorbissource.cpp index e283127..d6deeea 100644 --- a/src/vorbissource.cpp +++ b/src/vorbissource.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/window.cpp b/src/window.cpp index a06322f..90ea14c 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/window.h b/src/window.h index 349b5a3..60d147e 100644 --- a/src/window.h +++ b/src/window.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2013 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/windowvx.cpp b/src/windowvx.cpp index b4acfa6..05d629d 100644 --- a/src/windowvx.cpp +++ b/src/windowvx.cpp @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by diff --git a/src/windowvx.h b/src/windowvx.h index 8fa40ca..08f237f 100644 --- a/src/windowvx.h +++ b/src/windowvx.h @@ -3,7 +3,7 @@ ** ** This file is part of mkxp. ** -** Copyright (C) 2021 Amaryllis Kulla +** Copyright (C) 2014 - 2021 Amaryllis Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by From 9c6d72715291937ca2420830dcd4990c0d2c98c6 Mon Sep 17 00:00:00 2001 From: Ancurio Date: Sat, 6 Nov 2021 00:04:25 +0100 Subject: [PATCH 22/27] README: Point binary links at mapleshrine.eu --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 3afbe6a..161ea1c 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,8 @@ mkxp is a project that seeks to provide a fully open source implementation of th It is licensed under the GNU General Public License v2+. ## Prebuilt binaries -[**Linux (32bit/64bit)**](http://ancurio.bplaced.net/mkxp/generic/) +[**Linux / Windows**](https://www.mapleshrine.eu/releases/) [**OSX**](https://app.box.com/mkxpmacbuilds) by Ali -[**Windows (mingw-w64 32bit)**](http://ancurio.bplaced.net/mkxp/mingw32/) ## Should I use mkxp mkxp primarily targets technically versed users that are comfortable with Ruby / RGSS, and ideally know how to compile the project themselves. The reason for this is that for most games, due to Win32-API usage, mkxp is simply not a plug-and-play solution, but a building block with which a fully cross-platform version can be created in time. From dff2a12022a83e7a94c843b77b105c2deddbe55e Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Fri, 8 Sep 2023 20:53:05 +0200 Subject: [PATCH 23/27] README: Update links --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 161ea1c..4c0e5e2 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ # mkxp -Read: [Future of mkxp](https://gist.github.com/Ancurio/fc568571eaf7dd62c550dc3a08c0d08f) -Official discord community: https://discord.gg/A8xHE8P +Discord community: https://discord.gg/A8xHE8P +Matrix space: https://matrix.to/#/#mkxp:mapleshrine.eu +Further links: https://mapleshrine.eu mkxp is a project that seeks to provide a fully open source implementation of the Ruby Game Scripting System (RGSS) interface used in the popular game creation software "RPG Maker XP", "RPG Maker VX" and "RPG Maker VX Ace" (trademark by Enterbrain, Inc.), with focus on Linux. The goal is to be able to run games created with the above software natively without changing a single file. @@ -88,7 +89,7 @@ To run mkxp, you should have a graphics card capable of at least **OpenGL (ES) 2 ## Dependency kit -To facilitate hacking, I have assembled a package containing all dependencies to compile mkxp on a bare-bones Ubuntu 12.04 64bit installation. Compatibility with other distributions has not been tested. You can download it [here](https://www.dropbox.com/s/mtp44ur367m2zts/mkxp-depkit.tar.xz). Read the "README" for instructions. +To facilitate hacking, I have assembled a package containing all dependencies to compile mkxp on a bare-bones Ubuntu 12.04 64bit installation. Compatibility with other distributions has not been tested. You can download it [here](https://mapleshrine.eu/depkits/linux64.tar.xz). Read the "README" for instructions. ## Configuration From 2e82b8797223fc068e14e6b06850c3a1ded4ea1a Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Thu, 5 Oct 2023 21:18:55 +0200 Subject: [PATCH 24/27] README: Update soundfont link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4c0e5e2..a7e5f99 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,7 @@ Example: `./mkxp --gameFolder="my game" --vsync=true --fixedFramerate=60` mkxp doesn't come with a soundfont by default, so you will have to supply it yourself (set its path in the config). Playback has been tested and should work reasonably well with all RTP assets. -You can use this public domain soundfont: [GMGSx.sf2](https://www.dropbox.com/s/qxdvoxxcexsvn43/GMGSx.sf2?dl=0) +You can use this public domain soundfont: [GMGSx.sf2](https://mapleshrine.eu/unsorted/GMGSx.sf2) ## Fonts From de43f7da928a5e0010aebe8df1779a5186af75ca Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Mon, 27 Oct 2025 12:12:55 +0100 Subject: [PATCH 25/27] EventThread: Fix compilation with newer OpenAL headers Should remove the local typedefs eventually. --- src/eventthread.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/eventthread.cpp b/src/eventthread.cpp index 12d7406..9bb59b2 100644 --- a/src/eventthread.cpp +++ b/src/eventthread.cpp @@ -40,12 +40,12 @@ #include -typedef void (ALC_APIENTRY *LPALCDEVICEPAUSESOFT) (ALCdevice *device); -typedef void (ALC_APIENTRY *LPALCDEVICERESUMESOFT) (ALCdevice *device); +typedef void (ALC_APIENTRY *_LPALCDEVICEPAUSESOFT) (ALCdevice *device); +typedef void (ALC_APIENTRY *_LPALCDEVICERESUMESOFT) (ALCdevice *device); #define AL_DEVICE_PAUSE_FUN \ - AL_FUN(DevicePause, LPALCDEVICEPAUSESOFT) \ - AL_FUN(DeviceResume, LPALCDEVICERESUMESOFT) + AL_FUN(DevicePause, _LPALCDEVICEPAUSESOFT) \ + AL_FUN(DeviceResume, _LPALCDEVICERESUMESOFT) struct ALCFunctions { From 7b9d436ede2127295f38fcbadffffc6e2a6e5fbc Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Mon, 27 Oct 2025 12:17:20 +0100 Subject: [PATCH 26/27] Add Graphics#maximize_window Works even if the window is not resizable by user. Requested by matias1lol. --- binding-mri/graphics-binding.cpp | 10 ++++++++++ doc/extension_doc.md | 5 +++++ src/eventthread.cpp | 12 ++++++++++++ src/eventthread.h | 1 + 4 files changed, 28 insertions(+) diff --git a/binding-mri/graphics-binding.cpp b/binding-mri/graphics-binding.cpp index 87cb89c..bcb44b6 100644 --- a/binding-mri/graphics-binding.cpp +++ b/binding-mri/graphics-binding.cpp @@ -209,6 +209,15 @@ RB_METHOD(graphicsResizeWindow) return Qnil; } +RB_METHOD(graphicsMaximizeWindow) +{ + RB_UNUSED_PARAM; + + shState->eThread().requestWindowMaximize(); + + return Qnil; +} + DEF_GRA_PROP_I(FrameRate) DEF_GRA_PROP_I(FrameCount) DEF_GRA_PROP_I(Brightness) @@ -268,4 +277,5 @@ void graphicsBindingInit() INIT_GRA_PROP_BIND( ShowCursor, "show_cursor" ); _rb_define_module_function(module, "resize_window", graphicsResizeWindow); + _rb_define_module_function(module, "maximize_window", graphicsMaximizeWindow); } diff --git a/doc/extension_doc.md b/doc/extension_doc.md index 3edf81f..4c25f2f 100644 --- a/doc/extension_doc.md +++ b/doc/extension_doc.md @@ -1,3 +1,4 @@ + # mkxp extenions for Dancing Dragon Games / Symphony of War ## Graphics.resize_window(width, height, recenter) @@ -8,6 +9,10 @@ returns: nil Resizes the game window to width x height. If `recenter` is **true**, also center the window on the current screen. +## Graphics.maximize_window() + +Maximizes the game window, ignoring the `winResizable` config option. + ## Bitmap.write_to_png(filename) filename: String returns: self diff --git a/src/eventthread.cpp b/src/eventthread.cpp index 9bb59b2..8be64df 100644 --- a/src/eventthread.cpp +++ b/src/eventthread.cpp @@ -80,6 +80,7 @@ enum { REQUEST_SETFULLSCREEN = 0, REQUEST_WINRESIZE, + REQUEST_WINMAXIMIZE, REQUEST_MESSAGEBOX, REQUEST_SETCURSORVISIBLE, @@ -459,6 +460,10 @@ void EventThread::process(RGSSThreadData &rtData) updateCursorState(cursorInWindow, gameScreen); break; + case REQUEST_WINMAXIMIZE : + SDL_MaximizeWindow(win); + break; + case UPDATE_FPS : if (rtData.config.printFPS) Debug() << "FPS:" << event.user.code; @@ -622,6 +627,13 @@ void EventThread::requestWindowResize(int width, int height, bool recenter) SDL_PushEvent(&event); } +void EventThread::requestWindowMaximize() +{ + SDL_Event event; + event.type = usrIdStart + REQUEST_WINMAXIMIZE; + SDL_PushEvent(&event); +} + void EventThread::requestShowCursor(bool mode) { SDL_Event event; diff --git a/src/eventthread.h b/src/eventthread.h index 2ad7ec6..2352f79 100644 --- a/src/eventthread.h +++ b/src/eventthread.h @@ -89,6 +89,7 @@ public: /* Called from RGSS thread */ void requestFullscreenMode(bool mode); void requestWindowResize(int width, int height, bool recenter = false); + void requestWindowMaximize(); void requestShowCursor(bool mode); void requestTerminate(); From df9494e60c72ac9c2432a1b3f802d9238088b21a Mon Sep 17 00:00:00 2001 From: Amaryllis Kulla Date: Thu, 30 Oct 2025 23:10:51 +0100 Subject: [PATCH 27/27] Add Graphics#restore_window Requested by matias1lol. --- binding-mri/graphics-binding.cpp | 10 ++++++++++ doc/extension_doc.md | 4 ++++ src/eventthread.cpp | 12 ++++++++++++ src/eventthread.h | 1 + 4 files changed, 27 insertions(+) diff --git a/binding-mri/graphics-binding.cpp b/binding-mri/graphics-binding.cpp index bcb44b6..f924098 100644 --- a/binding-mri/graphics-binding.cpp +++ b/binding-mri/graphics-binding.cpp @@ -218,6 +218,15 @@ RB_METHOD(graphicsMaximizeWindow) return Qnil; } +RB_METHOD(graphicsRestoreWindow) +{ + RB_UNUSED_PARAM; + + shState->eThread().requestWindowRestore(); + + return Qnil; +} + DEF_GRA_PROP_I(FrameRate) DEF_GRA_PROP_I(FrameCount) DEF_GRA_PROP_I(Brightness) @@ -278,4 +287,5 @@ void graphicsBindingInit() _rb_define_module_function(module, "resize_window", graphicsResizeWindow); _rb_define_module_function(module, "maximize_window", graphicsMaximizeWindow); + _rb_define_module_function(module, "restore_window", graphicsRestoreWindow); } diff --git a/doc/extension_doc.md b/doc/extension_doc.md index 4c25f2f..ee8d32a 100644 --- a/doc/extension_doc.md +++ b/doc/extension_doc.md @@ -13,6 +13,10 @@ Resizes the game window to width x height. If `recenter` is **true**, also cente Maximizes the game window, ignoring the `winResizable` config option. +## Graphics.restore_window() + +Restores the game window from a maximized or minimized state. + ## Bitmap.write_to_png(filename) filename: String returns: self diff --git a/src/eventthread.cpp b/src/eventthread.cpp index 8be64df..989c89a 100644 --- a/src/eventthread.cpp +++ b/src/eventthread.cpp @@ -81,6 +81,7 @@ enum REQUEST_SETFULLSCREEN = 0, REQUEST_WINRESIZE, REQUEST_WINMAXIMIZE, + REQUEST_WINRESTORE, REQUEST_MESSAGEBOX, REQUEST_SETCURSORVISIBLE, @@ -464,6 +465,10 @@ void EventThread::process(RGSSThreadData &rtData) SDL_MaximizeWindow(win); break; + case REQUEST_WINRESTORE : + SDL_RestoreWindow(win); + break; + case UPDATE_FPS : if (rtData.config.printFPS) Debug() << "FPS:" << event.user.code; @@ -634,6 +639,13 @@ void EventThread::requestWindowMaximize() SDL_PushEvent(&event); } +void EventThread::requestWindowRestore() +{ + SDL_Event event; + event.type = usrIdStart + REQUEST_WINRESTORE; + SDL_PushEvent(&event); +} + void EventThread::requestShowCursor(bool mode) { SDL_Event event; diff --git a/src/eventthread.h b/src/eventthread.h index 2352f79..88d3f98 100644 --- a/src/eventthread.h +++ b/src/eventthread.h @@ -90,6 +90,7 @@ public: void requestFullscreenMode(bool mode); void requestWindowResize(int width, int height, bool recenter = false); void requestWindowMaximize(); + void requestWindowRestore(); void requestShowCursor(bool mode); void requestTerminate();