commit 4ea71bb4
No longer scales fullscreen
Changed files
| M | src/saland.cpp before |
| M | src/saland/Game.cpp before |
| M | src/saland/GameDraw.cpp before |
| M | src/saland/globals.hpp before |
diff --git a/src/saland.cpp b/src/saland.cpp
index 57aa8b0..d715163 100644
--- a/src/saland.cpp
+++ b/src/saland.cpp
@@ -173,7 +173,7 @@ void startWorld() {
void ResetFullscreen(SDL_Window* sdlWindow, sago::SagoDataHolder& dataHolder) {
Mix_HaltMusic(); //We need to reload all data in case the screen type changes. Music must be stopped before unload.
- if (false) {
+ if (true) {
SDL_SetWindowFullscreen(sdlWindow, SDL_WINDOW_FULLSCREEN_DESKTOP);
}
else {
@@ -182,6 +182,10 @@ void ResetFullscreen(SDL_Window* sdlWindow, sago::SagoDataHolder& dataHolder) {
dataHolder.invalidateAll(globalData.screen);
globalData.spriteHolder.reset(new sago::SagoSpriteHolder( dataHolder ) );
SDL_ShowCursor(SDL_ENABLE);
+ SDL_DisplayMode DM;
+ SDL_GetCurrentDisplayMode(0, &DM);
+ globalData.xsize = DM.w;
+ globalData.ysize = DM.h;
}
void runGame() {
@@ -193,7 +197,7 @@ void runGame() {
SDL_Window* win = SDL_CreateWindow("Saland Adventures", posX, posY, width, height, 0);
globalData.screen = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED);
- SDL_RenderSetLogicalSize(globalData.screen, 1024, 768);
+ //SDL_RenderSetLogicalSize(globalData.screen, 1024, 768);
sago::SagoDataHolder holder(globalData.screen);
globalData.spriteHolder.reset(new sago::SagoSpriteHolder(holder));
globalData.dataHolder = &holder;
diff --git a/src/saland/Game.cpp b/src/saland/Game.cpp
index bac51d7..6f90f7c 100644
--- a/src/saland/Game.cpp
+++ b/src/saland/Game.cpp
@@ -157,8 +157,8 @@ static std::string GetLayerInfoForTile(const World& w, int x, int y) {
}
void Game::Draw(SDL_Renderer* target) {
- double screen_width = 1024.0;
- double screen_height = 768.0;
+ double screen_width = globalData.xsize;
+ double screen_height = globalData.ysize;
int screen_boarder = 16;
data->topx = std::round(data->center_x - screen_width / 2.0);
data->topy = std::round(data->center_y - screen_height / 2.0);
diff --git a/src/saland/GameDraw.cpp b/src/saland/GameDraw.cpp
index 6840d47..877b904 100644
--- a/src/saland/GameDraw.cpp
+++ b/src/saland/GameDraw.cpp
@@ -55,8 +55,8 @@ void DrawOuterBorder(SDL_Renderer* renderer, SDL_Texture* texture, const sago::t
}
void DrawLayer(SDL_Renderer* renderer, sago::SagoSpriteHolder* sHolder, const sago::tiled::TileMap& tm, size_t layer, int topx, int topy) {
- for (int i = 0; i < tm.height; ++i) {
- for (int j = 0; j < tm.width; ++j) {
+ for (int i = topx/32; i < tm.width && i < (topx+globalData.xsize)/32+1; ++i) {
+ for (int j = topy/32; j < tm.height && j < (topy+globalData.ysize)/32+1; ++j) {
uint32_t gid = sago::tiled::getTileFromLayer(tm, tm.layers.at(layer), i, j);
if (gid == 0) {
continue;
diff --git a/src/saland/globals.hpp b/src/saland/globals.hpp
index 6b68f96..fe13f4c 100644
--- a/src/saland/globals.hpp
+++ b/src/saland/globals.hpp
@@ -36,6 +36,7 @@ struct GlobalData {
int mousex = 0;
int mousey = 0;
int xsize = 1024;
+ int ysize = 768;
};
extern GlobalData globalData;