From 0b3a0b60fc4646732ca6f1728712d790292f750b Mon Sep 17 00:00:00 2001 From: basisbit Date: Tue, 20 Oct 2015 00:07:57 +0000 Subject: * Radeon X1600/X1650 graphics card report that they support NPOT, but they don't. Implemented a check for these graphics cards. (not yet tested if this fixes all of the problems of that card. * when there was no background set up in the song.txt, trying to switch from visualization to visualization based ProjectM to crash. Fixed this by switching directly to video if there is no background. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@3150 b956fd51-792f-4845-bead-9b4dfca2ff2c --- src/base/UTexture.pas | 2 +- src/media/UVideo.pas | 3 ++- src/menu/UDisplay.pas | 2 +- src/screens/UScreenSing.pas | 5 ++++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/base/UTexture.pas b/src/base/UTexture.pas index d497f9be..6edcc46f 100644 --- a/src/base/UTexture.pas +++ b/src/base/UTexture.pas @@ -221,7 +221,7 @@ begin Log.LogInfo('OpenGL vendor ' + glGetString(GL_VENDOR), 'TTextureUnit.Create'); Log.LogInfo('OpenGL renderer ' + glGetString(GL_RENDERER), 'TTextureUnit.Create'); Log.LogInfo('OpenGL version ' + glGetString(GL_VERSION), 'TTextureUnit.Create'); - SupportsNPOT := AnsiContainsStr(glGetString(GL_EXTENSIONS),'texture_non_power_of_two'); + SupportsNPOT := (AnsiContainsStr(glGetString(GL_EXTENSIONS),'texture_non_power_of_two')) and not (AnsiContainsStr(glGetString(GL_EXTENSIONS), 'Radeon X16')); Log.LogInfo('OpenGL TextureNPOT-support: ' + BoolToStr(SupportsNPOT), 'TTextureUnit.Create'); end; diff --git a/src/media/UVideo.pas b/src/media/UVideo.pas index b8698359..5512ee7b 100644 --- a/src/media/UVideo.pas +++ b/src/media/UVideo.pas @@ -312,7 +312,8 @@ end; constructor TVideo_FFmpeg.Create; begin glGenTextures(1, PGLuint(@fFrameTex)); - SupportsNPOT := AnsiContainsStr(glGetString(GL_EXTENSIONS),'texture_non_power_of_two'); + SupportsNPOT := (AnsiContainsStr(glGetString(GL_EXTENSIONS),'texture_non_power_of_two')) and not (AnsiContainsStr(glGetString(GL_EXTENSIONS), 'Radeon X16')); + Reset(); end; diff --git a/src/menu/UDisplay.pas b/src/menu/UDisplay.pas index fe833e43..3b1c32f2 100644 --- a/src/menu/UDisplay.pas +++ b/src/menu/UDisplay.pas @@ -176,7 +176,7 @@ begin DoneOnShow := false; glGenTextures(2, PGLuint(@FadeTex)); - SupportsNPOT := AnsiContainsStr(glGetString(GL_EXTENSIONS),'texture_non_power_of_two'); + SupportsNPOT := (AnsiContainsStr(glGetString(GL_EXTENSIONS),'texture_non_power_of_two')) and not (AnsiContainsStr(glGetString(GL_EXTENSIONS), 'Radeon X16')); InitFadeTextures(); // set LastError for OSD to No Error diff --git a/src/screens/UScreenSing.pas b/src/screens/UScreenSing.pas index bf3db3af..38c4762d 100644 --- a/src/screens/UScreenSing.pas +++ b/src/screens/UScreenSing.pas @@ -210,10 +210,13 @@ begin // show visualization Ord('V'): begin - if (fShowVisualization = false) and (fShowBackground = true) and (Ini.VideoEnabled = 1) and CurrentSong.Video.IsSet() then //only Background should be visible currently, switch to video + if ((fShowBackground = true) and (Ini.VideoEnabled = 1) and CurrentSong.Video.IsSet()) + or (fShowVisualization and not CurrentSong.Background.IsSet()) then //switch to video begin Log.LogStatus('decided to switch to video', 'UScreenSing.ParseInput'); fShowBackground := false; + fCurrentVideo := nil; + fShowVisualization := false; fCurrentVideo := fVideoClip; Log.LogStatus('finished switching to video', 'UScreenSing.ParseInput'); end -- cgit v1.2.3