+ letterboxing to filterwheel
This commit is contained in:
parent
2260528bf5
commit
bed2ede94c
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue