+ letterboxing to filterwheel

This commit is contained in:
FajsiEx 2021-11-22 20:39:56 +01:00
parent 2260528bf5
commit bed2ede94c
1 changed files with 52 additions and 20 deletions

View File

@ -3,6 +3,8 @@ local Easing = require('common.easings');
local SongSelectHeader = require('components.headers.songSelectHeader') local SongSelectHeader = require('components.headers.songSelectHeader')
local Footer = require('components.footer'); local Footer = require('components.footer');
local backgroundImage = gfx.CreateSkinImage("bg_pattern.png", gfx.IMAGE_REPEATX | gfx.IMAGE_REPEATY)
local defaultFolderBgImage = gfx.CreateSkinImage('song_select/filter_wheel/bg.png', 0) local defaultFolderBgImage = gfx.CreateSkinImage('song_select/filter_wheel/bg.png', 0)
local collectionFolderBgImage = gfx.CreateSkinImage('song_select/filter_wheel/col_bg.png', 0) local collectionFolderBgImage = gfx.CreateSkinImage('song_select/filter_wheel/col_bg.png', 0)
local subFolderBgImage = gfx.CreateSkinImage('song_select/filter_wheel/sub_bg.png', 0) local subFolderBgImage = gfx.CreateSkinImage('song_select/filter_wheel/sub_bg.png', 0)
@ -107,6 +109,24 @@ local transitionLeaveScale = 1;
local transitionLeaveReappearTimer = 0; local transitionLeaveReappearTimer = 0;
local TRANSITION_LEAVE_DURATION = 0.1; local TRANSITION_LEAVE_DURATION = 0.1;
-- Window variables
local resX, resY
-- Aspect Ratios
local landscapeWidescreenRatio = 16 / 9
local landscapeStandardRatio = 4 / 3
local portraitWidescreenRatio = 9 / 16
-- Portrait sizes
local fullX, fullY
local resolutionChange = function(x, y)
resX = x
resY = y
fullX = portraitWidescreenRatio * y
fullY = y
end
function resetLayoutInformation() function resetLayoutInformation()
resx, resy = game.GetResolution() resx, resy = game.GetResolution()
scale = resx / desw scale = resx / desw
@ -323,34 +343,23 @@ function tickTransitions(deltaTime)
end end
end end
function drawFilterWheel(deltatime) function drawFilterWheelContent(deltatime)
gfx.ResetTransform()
resetLayoutInformation()
tickTransitions(deltatime); tickTransitions(deltatime);
gfx.Scale(scale, scale);
drawFolderList() drawFolderList()
end end
render = function(deltatime, shown) local drawFilterWheel = function (x,y,w,h, deltaTime)
isFilterWheelActive = shown; gfx.Scissor(x,y,w,h);
drawFilterWheel(deltatime) gfx.Translate(x,y);
gfx.Scale(w/1080, h/1920);
if not shown then
game.SetSkinSetting('_songWheelOverlayActive', 0);
else
game.SetSkinSetting('_songWheelOverlayActive', 1);
end
game.SetSkinSetting('_songWheelActiveFolderLabel', getFolderData(filters.folder[selectedFolder]).label);
game.SetSkinSetting('_songWheelActiveSubFolderLabel', getFolderData(filters.level[selectedLevel]).label);
drawFilterWheelContent(deltaTime)
drawCursor() drawCursor()
drawScrollbar() drawScrollbar()
if (game.GetSkinSetting('_currentScreen') == 'songwheel') then if (game.GetSkinSetting('_currentScreen') == 'songwheel') then
SongSelectHeader.draw(deltatime); SongSelectHeader.draw(deltaTime);
Footer.draw(deltatime); Footer.draw(deltaTime);
end end
if (isFilterWheelActive ~= previousActiveState) then if (isFilterWheelActive ~= previousActiveState) then
@ -368,6 +377,29 @@ render = function(deltatime, shown)
-- transitionLeaveScale .. ' // L_TRT: ' .. transitionLeaveReappearTimer, 8, 1870); -- transitionLeaveScale .. ' // L_TRT: ' .. transitionLeaveReappearTimer, 8, 1870);
end end
render = function(deltaTime, shown)
isFilterWheelActive = shown;
if not shown then
game.SetSkinSetting('_songWheelOverlayActive', 0);
else
game.SetSkinSetting('_songWheelOverlayActive', 1);
end
game.SetSkinSetting('_songWheelActiveFolderLabel', getFolderData(filters.folder[selectedFolder]).label);
game.SetSkinSetting('_songWheelActiveSubFolderLabel', getFolderData(filters.level[selectedLevel]).label);
-- detect resolution change
local resx, resy = game.GetResolution();
if resx ~= resX or resy ~= resY then
resolutionChange(resx, resy)
end
gfx.GlobalAlpha(1)
drawFilterWheel((resX - fullX) / 2, 0, fullX, fullY, deltaTime);
end
set_selection = function(newIndex, isFolder) set_selection = function(newIndex, isFolder)
local oldIndex = 1; local oldIndex = 1;
local total = 1; local total = 1;