+ 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 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 collectionFolderBgImage = gfx.CreateSkinImage('song_select/filter_wheel/col_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 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()
resx, resy = game.GetResolution()
scale = resx / desw
@ -261,7 +281,7 @@ end
function drawScrollbar()
if not isFilterWheelActive or transitionLeaveScale ~= 0 then return end
gfx.BeginPath()
local bgW = 13*0.85;
local bgH = 1282*0.85;
@ -323,34 +343,23 @@ function tickTransitions(deltaTime)
end
end
function drawFilterWheel(deltatime)
gfx.ResetTransform()
resetLayoutInformation()
function drawFilterWheelContent(deltatime)
tickTransitions(deltatime);
gfx.Scale(scale, scale);
drawFolderList()
end
render = function(deltatime, shown)
isFilterWheelActive = shown;
drawFilterWheel(deltatime)
local drawFilterWheel = function (x,y,w,h, deltaTime)
gfx.Scissor(x,y,w,h);
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()
drawScrollbar()
if (game.GetSkinSetting('_currentScreen') == 'songwheel') then
SongSelectHeader.draw(deltatime);
Footer.draw(deltatime);
SongSelectHeader.draw(deltaTime);
Footer.draw(deltaTime);
end
if (isFilterWheelActive ~= previousActiveState) then
@ -368,6 +377,29 @@ render = function(deltatime, shown)
-- transitionLeaveScale .. ' // L_TRT: ' .. transitionLeaveReappearTimer, 8, 1870);
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)
local oldIndex = 1;
local total = 1;