1
0
mirror of https://github.com/blupi-games/planetblupi synced 2024-12-30 10:15:36 +01:00
planetblupi/src/blupi.h
Mathieu Schroeter 8b7142a084 Add the option for chaning the render quality
It toggles between 'nearest' (faster) and 'best' (slower but more
prettier). It's enabled only when the game runs in fullscreen.

The option can be passed by command line argument `--render-quality on`,
by settings.json file with a `"renderquality": true` entry or simply
with the main settings screen in the game.
2018-08-06 07:20:23 +02:00

119 lines
3.2 KiB
C++

/*
* This file is part of the planetblupi source code
* Copyright (C) 1997, Daniel Roux & EPSITEC SA
* Copyright (C) 2017-2018, Mathieu Schroeter
* http://epsitec.ch; http://www.blupi.org; http://github.com/blupi-games
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see http://gnu.org/licenses
*/
#pragma once
#include <SDL.h>
#include <libintl.h>
#include <string>
#include "config.h"
class CEvent;
enum RestartMode { NO = 0, LEGACY, DESKTOP };
extern SDL_Window * g_window;
extern SDL_Renderer * g_renderer;
extern bool g_bFullScreen;
extern Uint8 g_zoom;
extern bool g_restoreBugs;
extern bool g_restoreMidi;
extern bool g_renderQuality;
extern bool g_enableRecorder;
extern std::string g_playRecord;
extern CEvent * g_pEvent;
extern RestartMode g_restart;
extern Sint32 g_timerInterval;
enum Settings {
SETTING_FULLSCREEN = 1 << 0,
SETTING_SPEEDRATE = 1 << 1,
SETTING_TIMERINTERVAL = 1 << 2,
SETTING_RENDERER = 1 << 3,
SETTING_ZOOM = 1 << 4,
SETTING_DRIVER = 1 << 5,
SETTING_MIDI = 1 << 6,
SETTING_LEGACY = 1 << 7,
SETTING_RENDERQUALITY = 1 << 8,
};
extern int g_settingsOverload;
struct Point {
Sint32 x;
Sint32 y;
};
struct Rect {
Sint32 left;
Sint32 top;
Sint32 right;
Sint32 bottom;
};
typedef Uint32 ColorRef;
#if defined(_WIN64)
typedef unsigned __int64 WParam;
typedef __int64 LParam;
#else
typedef Uint32 WParam;
typedef Sint32 LParam;
#endif
#undef LOWORD
#undef HIWORD
#define LOWORD(l) ((Uint16) (((Uint32) (l)) & 0xffff))
#define HIWORD(l) ((Uint16) ((((Uint32) (l)) >> 16) & 0xffff))
#define PB_STRINGIFY(s) #s
#define PB_TOSTRING(s) PB_STRINGIFY (s)
#define PB_VERSION_INT(a, b, c) (a << 16 | b << 8 | c)
#define PB_VERSION_DOT(a, b, c) a##.##b##.##c
#define PB_VERSION(a, b, c) PB_VERSION_DOT (a, b, c)
#define PLANETBLUPI_VERSION \
PB_VERSION (PB_VERSION_MAJOR, PB_VERSION_MINOR, PB_VERSION_PATCH)
#define PLANETBLUPI_VERSION_INT \
PB_VERSION_INT (PB_VERSION_MAJOR, PB_VERSION_MINOR, PB_VERSION_PATCH)
#define PLANETBLUPI_VERSION_STR PB_TOSTRING (PLANETBLUPI_VERSION)
#ifdef _WIN32
#define countof(a) _countof (a)
#else /* _WIN32 */
#define countof(a) (sizeof (a) / sizeof (*a))
#endif /* !_WIN32 */
// clang-format off
#define VK_END 0x23
#define VK_LEFT 0x25
#define VK_UP 0x26
#define VK_RIGHT 0x27
#define VK_DOWN 0x28
#define EV_KEYDOWN 0x0100
#define EV_KEYUP 0x0101
#define EV_MOUSEMOVE 0x0200
#define EV_LBUTTONDOWN 0x0201
#define EV_LBUTTONUP 0x0202
#define EV_RBUTTONDOWN 0x0204
#define EV_RBUTTONUP 0x0205
// clang-format on