projects/RPi/patches/kodi: update RPi support patch

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2015-02-01 13:35:22 +01:00
parent aa46b8159e
commit ce4abb247a

View File

@ -1,7 +1,7 @@
From 21ccbc1fe377824d6d633e6288b39eae07dfa60f Mon Sep 17 00:00:00 2001
From dde30eb9bfceb3e1160778da78f9454f4a420c60 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Mon, 7 Apr 2014 18:19:32 +0100
Subject: [PATCH 01/59] [rbp/omxplayer] When opening a stream don't try to
Subject: [PATCH 01/61] [rbp/omxplayer] When opening a stream don't try to
update gui so often
---
@ -25,10 +25,10 @@ index e7cfcdd..20b99ad 100644
g_windowManager.ProcessRenderLoop(false);
if (allowCancel && dialog->IsCanceled())
From 7d18f486d1320b360e7a856e57f19ed47fa4f514 Mon Sep 17 00:00:00 2001
From ec789b4201894bb0853901c8dfdb47cbf4050f4d Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Tue, 29 Apr 2014 15:23:22 +0100
Subject: [PATCH 02/59] [ffmpeg] Speed up wtv index creation
Subject: [PATCH 02/61] [ffmpeg] Speed up wtv index creation
The index creation is O(N^2) with number of entries (typically thousands).
On a Pi this can take more than 60 seconds to execute for a recording of a few hours.
@ -114,10 +114,10 @@ index 0000000..4ac5636
+ }
+ }
From b799de5ea626ab81d1944e4009b3fd565cbb02f1 Mon Sep 17 00:00:00 2001
From a386d39840eab40ee600b0e4a013d8460c73aac0 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Sat, 2 Aug 2014 17:48:04 +0100
Subject: [PATCH 03/59] [omx] Report decoded image name
Subject: [PATCH 03/61] [omx] Report decoded image name
---
xbmc/cores/omxplayer/OMXImage.cpp | 1 +
@ -136,10 +136,10 @@ index aa413b9..22ec3f0 100644
else
{
From e785585c1500e96dfa5910d9431f6e7ddc02bbe9 Mon Sep 17 00:00:00 2001
From 66aca8521dba22df0f955c60e44f31e15e52c503 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Sat, 8 Mar 2014 15:36:06 +0000
Subject: [PATCH 04/59] [hifiberry] Hack: force it to be recognised as IEC958
Subject: [PATCH 04/61] [hifiberry] Hack: force it to be recognised as IEC958
capable to enable passthrough options
---
@ -162,10 +162,10 @@ index df50940..2d853d6 100644
info.m_displayName.substr(info.m_displayName.size()-5) == " HDMI")
{
From d30b5e83ae75e37e3cfef5b84d6a74464d59a064 Mon Sep 17 00:00:00 2001
From 8f1504b250c22778df7115c08e44fa4602c8b21e Mon Sep 17 00:00:00 2001
From: Ben Avison <bavison@riscosopen.org>
Date: Wed, 11 Dec 2013 17:21:54 +0000
Subject: [PATCH 05/59] Move the reference-counting of Begin and End calls from
Subject: [PATCH 05/61] Move the reference-counting of Begin and End calls from
DX and GL source files into GUIFontTTF.cpp.
---
@ -553,10 +553,10 @@ index c0bb53a..735fb3a 100644
protected:
virtual CBaseTexture* ReallocTexture(unsigned int& newHeight);
From 6402cdee4f1aac1c61496ca7f20fc7c8b271d4ef Mon Sep 17 00:00:00 2001
From 441db2d2d13756a3c7c7a952ee3e48193bfcc06f Mon Sep 17 00:00:00 2001
From: Ben Avison <bavison@riscosopen.org>
Date: Wed, 11 Dec 2013 18:47:54 +0000
Subject: [PATCH 06/59] Convert CGUIFontTTFBase::m_vertex to be managed as a
Subject: [PATCH 06/61] Convert CGUIFontTTFBase::m_vertex to be managed as a
std::vector.
Also retired CGUIFontTTFBase::m_vertex_count and
@ -736,10 +736,10 @@ index 97853fd..b76c6a5 100644
*vertices++ = m_vertex[i];
*vertices++ = m_vertex[i+1];
From c835933f384d85f55db3e8b9f7e3b84eb9719361 Mon Sep 17 00:00:00 2001
From 92f333f71132eeda5a93bf0efe4c3e95f4e334ef Mon Sep 17 00:00:00 2001
From: Ben Avison <bavison@riscosopen.org>
Date: Mon, 16 Dec 2013 18:58:12 +0000
Subject: [PATCH 07/59] CGUIFontTTFBase::RenderCharacter can now append to
Subject: [PATCH 07/61] CGUIFontTTFBase::RenderCharacter can now append to
arbitrary vectors of vertices rather than only CGUIFontTTFBase::m_vertex
---
@ -812,10 +812,10 @@ index 5675725..a5d44f4 100644
virtual CBaseTexture* ReallocTexture(unsigned int& newHeight) = 0;
From 8ce21fb606737450c355302556db1a385ec251d0 Mon Sep 17 00:00:00 2001
From 74a2b63b9dc70665bb3944c589b509b8a801aeb6 Mon Sep 17 00:00:00 2001
From: Ben Avison <bavison@riscosopen.org>
Date: Wed, 15 Jan 2014 17:18:38 +0000
Subject: [PATCH 08/59] Add a cache of font glyph bounding box vertices.
Subject: [PATCH 08/61] Add a cache of font glyph bounding box vertices.
This is implemented as a template because ultimately we will key on different
parameters and store values of different types, depending upon whether we
@ -1589,10 +1589,10 @@ index f351c99..9036ba9 100644
+ return !operator==(a, b);
+}
From b9d51e7d9050ac5b9c97f234c0ca0f4afa21a25d Mon Sep 17 00:00:00 2001
From 0ad4af9bc0a131a5f75af68a6f375300a79dc50a Mon Sep 17 00:00:00 2001
From: Ben Avison <bavison@riscosopen.org>
Date: Thu, 23 Jan 2014 22:24:17 +0000
Subject: [PATCH 09/59] Lay the groundwork for hardware clipping.
Subject: [PATCH 09/61] Lay the groundwork for hardware clipping.
For glScissor() to replace CGraphicContext::ClipRect, a necessary condition
is that no shear or rotation is introduced between the coordinate systems
@ -1854,10 +1854,10 @@ index 98e398a..81ee49e 100644
virtual void ResetScissors();
From 9523e09fa9a2b07f5bc378c99698947d3c4e8e9f Mon Sep 17 00:00:00 2001
From e5812aee3483744b42f7c98043261153d2a0ae22 Mon Sep 17 00:00:00 2001
From: Ben Avison <bavison@riscosopen.org>
Date: Thu, 23 Jan 2014 16:42:22 +0000
Subject: [PATCH 10/59] Increase font cache hit rate by keying on the
Subject: [PATCH 10/61] Increase font cache hit rate by keying on the
fractional part of m_originX and m_originY *after* they have been through the
graphics context's transformation matrix, plus the scale/rotation elements of
the matrix, rather than the origin in the original frame of reference plus
@ -2058,10 +2058,10 @@ index 3b93672..258dffa 100644
private:
virtual bool FirstBegin() = 0;
From 4e26484c61e1e3b0222d324bfae61e02a6460c9c Mon Sep 17 00:00:00 2001
From 34e167b49c1a081d42dd6ebac1011f5776671acc Mon Sep 17 00:00:00 2001
From: Ben Avison <bavison@riscosopen.org>
Date: Wed, 8 Jan 2014 12:16:33 +0000
Subject: [PATCH 11/59] Rewrite of scrolling text code.
Subject: [PATCH 11/61] Rewrite of scrolling text code.
No longer shuffles the string round to minimise the number of characters
before the clipping rectangle; this doesn't save much on rendering time but
@ -2377,10 +2377,10 @@ index 2cda726..fbc579e 100644
private:
void Process();
From 83e42cde447f96f70c1958bbc34bf0621e33a95e Mon Sep 17 00:00:00 2001
From f7e99d8c6f5ecbd7eeecf26462d68a8b5e32fbd9 Mon Sep 17 00:00:00 2001
From: Ben Avison <bavison@riscosopen.org>
Date: Mon, 27 Jan 2014 23:21:10 +0000
Subject: [PATCH 12/59] Move the application of the translation offsets into
Subject: [PATCH 12/61] Move the application of the translation offsets into
the GLES code.
Still all pure software at this stage. Main change is in the data types at
@ -2574,10 +2574,10 @@ index 9935ea4..18c9358 100644
memset(newTexture->GetPixels(), 0, m_textureHeight * newTexture->GetPitch());
if (m_texture)
From fb3e0d6fb9dd5160e66f424c15b3d73091bb1123 Mon Sep 17 00:00:00 2001
From bf796b3c9edd178fe1fd15b7337045d81a33b3d7 Mon Sep 17 00:00:00 2001
From: Ben Avison <bavison@riscosopen.org>
Date: Wed, 15 Jan 2014 15:28:06 +0000
Subject: [PATCH 13/59] Rather than applying the translation offsets to the
Subject: [PATCH 13/61] Rather than applying the translation offsets to the
vertices, now applies them to the model view matrix from the top of the
matrix stack and pushes it over to OpenGL. The vertices themselves are still
all held client-side.
@ -2721,10 +2721,10 @@ index 81ee49e..d2f9cd1 100644
protected:
virtual void SetVSyncImpl(bool enable) = 0;
From 9b059c3ca15e30b119a427c2c9fc24d08081aa8f Mon Sep 17 00:00:00 2001
From 504eab137cb13388fe90c71594984572196643d7 Mon Sep 17 00:00:00 2001
From: Ben Avison <bavison@riscosopen.org>
Date: Wed, 29 Jan 2014 13:21:19 +0000
Subject: [PATCH 14/59] Enable hardware clipping.
Subject: [PATCH 14/61] Enable hardware clipping.
---
xbmc/guilib/GUIFontTTF.cpp | 4 ++--
@ -2796,10 +2796,10 @@ index ea08bf4..b63e337 100644
glUniformMatrix4fv(modelLoc, 1, GL_FALSE, g_matrices.GetMatrix(MM_MODELVIEW));
}
From 96a2dfbc46d00a4d8d5d6315f66eb7a88ef627d2 Mon Sep 17 00:00:00 2001
From 17d9d1abffa0331f5010448e292d8e1fb2bdc3a4 Mon Sep 17 00:00:00 2001
From: Ben Avison <bavison@riscosopen.org>
Date: Wed, 15 Jan 2014 15:32:51 +0000
Subject: [PATCH 15/59] Move the vertex data across to a vertex buffer object
Subject: [PATCH 15/61] Move the vertex data across to a vertex buffer object
just prior to drawing.
---
@ -2850,10 +2850,10 @@ index b63e337..b00055d 100644
// Disable the attributes used by this shader
From ef90cbbf8c7ff7d6328aa9cc546267cd75e97682 Mon Sep 17 00:00:00 2001
From d5e6a10622a0ef375feaed609a37b02e1facd3ba Mon Sep 17 00:00:00 2001
From: Ben Avison <bavison@riscosopen.org>
Date: Wed, 15 Jan 2014 16:04:04 +0000
Subject: [PATCH 16/59] Move vertex data into an OpenGL VBO when the font cache
Subject: [PATCH 16/61] Move vertex data into an OpenGL VBO when the font cache
entry is populated.
The font cache now stores the "name" (handle) of the VBO, rather than a vector
@ -3126,10 +3126,10 @@ index 735fb3a..6102c90 100644
protected:
virtual CBaseTexture* ReallocTexture(unsigned int& newHeight);
From 319d8a3d4c55b51a862b2a391f67cb8c07064a9d Mon Sep 17 00:00:00 2001
From af7b182e5e871b1e478917973d7b06836172cba1 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Sat, 1 Nov 2014 22:15:13 +0000
Subject: [PATCH 17/59] Switch from glDrawArrays() to glDrawElements().
Subject: [PATCH 17/61] Switch from glDrawArrays() to glDrawElements().
This involves setting up a static VBO containing the indexes necessary to
convert from quads to triangles on the fly in the GPU.
@ -3350,10 +3350,10 @@ index 2bdd4fa..68f0117 100644
if (m_display != EGL_NO_DISPLAY)
From ec27ce3984e872d6d0c42d0393fcbde422f16df3 Mon Sep 17 00:00:00 2001
From c0512739051fefdf815b4100213f4a43c22bc16c Mon Sep 17 00:00:00 2001
From: Ben Avison <bavison@riscosopen.org>
Date: Thu, 1 May 2014 16:28:39 +0100
Subject: [PATCH 18/59] Improved file buffering in CArchive
Subject: [PATCH 18/61] Improved file buffering in CArchive
Even though memcpy is typically inlined by the compiler into byte/word loads
and stores (at least for release builds), the frequency with which 1, 2 and 4
@ -3413,10 +3413,10 @@ index 6ed0f8f..8506d95 100644
}
else
From 41d3e133bbffc9d11331acfa99b7c2c3b8fcebe6 Mon Sep 17 00:00:00 2001
From 51b24a82bc14025ce06c0edf513725037ad12fae Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Wed, 10 Sep 2014 22:07:21 +0100
Subject: [PATCH 19/59] [mmal] Allow mmal codec for dvd stills
Subject: [PATCH 19/61] [mmal] Allow mmal codec for dvd stills
---
xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp | 4 ++++
@ -3438,10 +3438,10 @@ index 10648c5..bea5e4f 100644
{
// If dvd is an mpeg2 and hint.stills
From acf046944e6ec8de7a93a607677447c77920fdf2 Mon Sep 17 00:00:00 2001
From 0537e3a504c1f23c5db538a5b74b8993cc4919a4 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Tue, 12 Aug 2014 00:31:36 +0100
Subject: [PATCH 20/59] [omxcodec] Don't force software codec with dvds
Subject: [PATCH 20/61] [omxcodec] Don't force software codec with dvds
---
xbmc/cores/dvdplayer/DVDPlayer.cpp | 2 ++
@ -3462,10 +3462,10 @@ index aae59dc..12a3ed6 100644
CDVDInputStream::IMenus* pMenus = dynamic_cast<CDVDInputStream::IMenus*>(m_pInputStream);
From 5f656b301076fb0f51c592743e1f6f91a7c448df Mon Sep 17 00:00:00 2001
From 48065b31bcc20416925a437417ff30c309ca422d Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Wed, 16 Apr 2014 21:18:06 +0100
Subject: [PATCH 21/59] [omxplayer] Don't propagate 3d flags based on supported
Subject: [PATCH 21/61] [omxplayer] Don't propagate 3d flags based on supported
3d modes
---
@ -3518,10 +3518,10 @@ index ac838ce..605318c9 100644
unsigned int iDisplayWidth = width;
unsigned int iDisplayHeight = height;
From dbc9ba4f5a5eaac20d6a2bbbd5be864ff0199ba9 Mon Sep 17 00:00:00 2001
From 8da39d7dc81be90459a1ffa8c67fb1dd826d1e54 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Thu, 17 Apr 2014 13:00:52 +0100
Subject: [PATCH 22/59] [graphics] Don't set stereo mode based on resolution
Subject: [PATCH 22/61] [graphics] Don't set stereo mode based on resolution
The resolution change should follow stereo mode
---
@ -3579,10 +3579,10 @@ index 3cb5587..fe6ebf4 100644
m_iScreenWidth = info_mod.iWidth;
From ad36167c254472a71fd235ca296531aeb6d2f3d4 Mon Sep 17 00:00:00 2001
From a2fa758a0975c317360bed25e72f359f24545e50 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Thu, 17 Apr 2014 13:01:51 +0100
Subject: [PATCH 23/59] [graphics] Allow switching to a more suitable 3D
Subject: [PATCH 23/61] [graphics] Allow switching to a more suitable 3D
resolution
---
@ -3668,10 +3668,10 @@ index 2904c1b..8d3774f 100644
void ResetOverscan(RESOLUTION_INFO &resinfo);
void ResetScreenParameters(RESOLUTION res);
From fb10ab75b5341bf3c64f776862b41e6930f5da5e Mon Sep 17 00:00:00 2001
From 0ac98adc456416d3f687a81924659397d4a9ef7b Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Thu, 17 Apr 2014 13:38:55 +0100
Subject: [PATCH 24/59] [3D] Support switching to 3D resolutions
Subject: [PATCH 24/61] [3D] Support switching to 3D resolutions
Include matching 3D flags (SBS/TAB) in the score of a resolution to switch to, to enable switching to 3d modes.
Also remove the old code that treated 3D modes differently when assigning a score.
@ -3753,10 +3753,10 @@ index 83c3adb..8076e76 100644
return current;
}
From 393948744ffbc7f0020de0106791950d2e1a9688 Mon Sep 17 00:00:00 2001
From 7fef1d13ee7d83bcbe3ea5b8f74461c5744b9ca9 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Wed, 23 Apr 2014 00:05:07 +0100
Subject: [PATCH 25/59] [graphics] Make pixel ratio for 3d modes consistent
Subject: [PATCH 25/61] [graphics] Make pixel ratio for 3d modes consistent
Note: Use the stored stereo flags from lists of resolutions.
Use current stereo mode for current resolution.
@ -3959,10 +3959,10 @@ index c58c28a..bf1e589 100644
AddUniqueResolution(res2, resolutions);
From 8230c7d8e8e9ac028b8d79db9795a6e4fdc6d70a Mon Sep 17 00:00:00 2001
From 226505052e30a82e9df0517ee8a5c7e4e3ba230f Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Sun, 10 Aug 2014 16:45:16 +0100
Subject: [PATCH 26/59] filesystem: Make support of browsing into archives
Subject: [PATCH 26/61] filesystem: Make support of browsing into archives
optional
The ability to browse, scan and play content in archives can cause problems on low powered/low memory devices.
@ -4061,10 +4061,10 @@ index 2fd8777..3b294cd 100644
{ // XBMC Smart playlist - just XML renamed to XSP
// read the name of the playlist in
From a1d5e1e55e73739ebc9351b10bf5da4996ce2789 Mon Sep 17 00:00:00 2001
From f4bb933ecf5264da34f4016254a87318160ed59e Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Mon, 27 Oct 2014 13:06:57 +0000
Subject: [PATCH 28/59] [rbp] Make cachemembuffersize default depend on memory
Subject: [PATCH 28/61] [rbp] Make cachemembuffersize default depend on memory
size
---
@ -4120,10 +4120,11 @@ index 478d725..69b7832 100644
// the following setting determines the readRate of a player data
// as multiply of the default data read rate
From 2ca83864ff37a2231cb316bfd244d19cfde64c20 Mon Sep 17 00:00:00 2001
From 2d804672d3ff76acc05ce146aaf0addbd17b9a72 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Mon, 16 Jun 2014 19:06:00 +0100
Subject: [PATCH 30/59] [experimental] Disable quiet-noise generation
Subject: [PATCH 30/61] [experimental] Disable quiet-noise generation
---
xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp | 2 ++
@ -4150,10 +4151,10 @@ index b391ff3..463a89c 100644
void CActiveAESink::SetSilenceTimer()
From 4b8009168a04adf42580b2840cc0085dc2681116 Mon Sep 17 00:00:00 2001
From 1ef873265263d237960c9052ab0fe425eaa3f08b Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Fri, 30 May 2014 14:58:43 +0100
Subject: [PATCH 31/59] [settings] Experiment: Report DESKTOP resolution in
Subject: [PATCH 31/61] [settings] Experiment: Report DESKTOP resolution in
video settings
---
@ -4175,10 +4176,10 @@ index 6902f83..50c5f97 100644
StringUtils::Format("%dx%d%s", resolution->width, resolution->height,
ModeFlagsToString(resolution->flags, false).c_str()),
From 88db62dd5d2e68f145594046ac8560047c0f454c Mon Sep 17 00:00:00 2001
From 994c18e9e61d6a1070028f4253b68491e6feb474 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Sat, 16 Aug 2014 21:01:42 +0100
Subject: [PATCH 32/59] omxrender: Hacks to reduce GUI rendering rate when
Subject: [PATCH 32/61] omxrender: Hacks to reduce GUI rendering rate when
playing video
---
@ -4250,7 +4251,7 @@ index f3c8a01..2996c29 100644
</section>
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
index 7ee0a34..e45cb7b 100644
index 4a5619a..70dfea5 100644
--- a/xbmc/Application.cpp
+++ b/xbmc/Application.cpp
@@ -2207,6 +2207,23 @@ void CApplication::Render()
@ -4278,10 +4279,10 @@ index 7ee0a34..e45cb7b 100644
int vsync_mode = CSettings::Get().GetInt("videoscreen.vsync");
From 154364d6e3f25a775501fb5962a60f28f3e9e5bf Mon Sep 17 00:00:00 2001
From dde88c3d2123c6b6036f6d32d546ad691b06a99c Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Tue, 9 Sep 2014 12:04:26 +0100
Subject: [PATCH 33/59] egl: Treat unknown display aspect ratio as square pixel
Subject: [PATCH 33/61] egl: Treat unknown display aspect ratio as square pixel
---
xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp | 4 ++--
@ -4310,10 +4311,10 @@ index bf1e589..a25eb86 100644
SetResolutionString(m_desktopRes);
From 6292fe41f1e05a3297855058d5b77bf108278d66 Mon Sep 17 00:00:00 2001
From a3efced6244577f10cbdaf5c16a3a5eee627e519 Mon Sep 17 00:00:00 2001
From: anaconda <anaconda@menakite.eu>
Date: Thu, 11 Sep 2014 21:30:43 +0200
Subject: [PATCH 34/59] Disable textbox autoscrolling while on screensaver.
Subject: [PATCH 34/61] Disable textbox autoscrolling while on screensaver.
SQUASH: only if dim or black
---
@ -4323,10 +4324,10 @@ SQUASH: only if dim or black
3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
index e45cb7b..aefa7a9 100644
index 70dfea5..a5706bd 100644
--- a/xbmc/Application.cpp
+++ b/xbmc/Application.cpp
@@ -5877,3 +5877,10 @@ void CApplication::CloseNetworkShares()
@@ -5881,3 +5881,10 @@ void CApplication::CloseNetworkShares()
CSFTPSessionManager::DisconnectAllSessions();
#endif
}
@ -4351,7 +4352,7 @@ index 0a332ff..15efc90 100644
virtual bool OnSettingsSaving() const;
diff --git a/xbmc/guilib/GUITextBox.cpp b/xbmc/guilib/GUITextBox.cpp
index b7ef051..e149418 100644
index c0e2fa5..0eca360 100644
--- a/xbmc/guilib/GUITextBox.cpp
+++ b/xbmc/guilib/GUITextBox.cpp
@@ -23,6 +23,7 @@
@ -4374,10 +4375,10 @@ index b7ef051..e149418 100644
if (m_lastRenderTime)
m_autoScrollDelayTime += currentTime - m_lastRenderTime;
From 8c4d815df6f3b6e987d59baa3874c031f5bb3bf7 Mon Sep 17 00:00:00 2001
From d2bfba18dd090634d5725ae74e92e6de7792fca7 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Thu, 18 Sep 2014 14:24:56 +0100
Subject: [PATCH 35/59] [omxplayer] Only enable audio clock master when A/V
Subject: [PATCH 35/61] [omxplayer] Only enable audio clock master when A/V
sync method is set to audio clock
---
@ -4408,10 +4409,10 @@ index 5475570..7c07b57 100644
OMX_CONFIG_BOOLEANTYPE configBool;
OMX_INIT_STRUCTURE(configBool);
From 90fd0cf3e81cfe5cf031ddb0695527b557239a44 Mon Sep 17 00:00:00 2001
From 165d1b6f807277a808f70537d5f3bb2db75c3592 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Fri, 19 Sep 2014 11:54:49 +0100
Subject: [PATCH 36/59] [dvdplayer/rbp] Add pi specific option to maintain
Subject: [PATCH 36/61] [dvdplayer/rbp] Add pi specific option to maintain
vsync with pll adjustment
New A/V sync option in settings/video/playback to do "Adjust PLL".
@ -4610,10 +4611,10 @@ index 4fd18f3..6456657 100644
private:
DllBcmHost *m_DllBcmHost;
From 58b03e1d8f68488080ebcc691e76e1e88ff5cf56 Mon Sep 17 00:00:00 2001
From 797d4926183f165a74a9b84ab3d3369907222c6b Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Sat, 27 Sep 2014 15:32:37 +0100
Subject: [PATCH 37/59] [dvdplayer] exerimental: don't raise priority of audio
Subject: [PATCH 37/61] [dvdplayer] exerimental: don't raise priority of audio
thread
---
@ -4637,10 +4638,10 @@ index 12a3ed6..cb512ed 100644
}
From a7beb59c75489a8b6f060c68a4a7d93f222c059e Mon Sep 17 00:00:00 2001
From 084de6d589287fed574658f9eec2180b0d7a7c79 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Sun, 28 Sep 2014 19:28:17 +0100
Subject: [PATCH 38/59] [mmalcodec] Introduce a preroll period to buffer up
Subject: [PATCH 38/61] [mmalcodec] Introduce a preroll period to buffer up
frames on startup
---
@ -4773,10 +4774,10 @@ index b4aa571..4f81bbd 100644
MMAL_COMPONENT_T *m_dec;
MMAL_PORT_T *m_dec_input;
From e8a46a451078513b444fbba5ef786c7757ba84a4 Mon Sep 17 00:00:00 2001
From 46d39ba5ad0927c5d61712a8b04f8d3ca824d9fd Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Wed, 24 Sep 2014 23:13:52 +0100
Subject: [PATCH 39/59] [audio] Add settings option to boost centre channel
Subject: [PATCH 39/61] [audio] Add settings option to boost centre channel
when downmixing
This allows a dB volume increase to be added to centre channel.
@ -4899,10 +4900,10 @@ index 7c07b57..ef4c3d4 100644
// stereo upmix
if (upmix && m_src_channels == 2 && m_dst_channels > 2)
From 4427fe20b1c84879ce066681165c689b005543a5 Mon Sep 17 00:00:00 2001
From 6686f4f39283921d069464eec0652f0cf6b091b0 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Fri, 3 Oct 2014 18:38:07 +0100
Subject: [PATCH 40/59] [omxcore] Skip out of flush on error
Subject: [PATCH 40/61] [omxcore] Skip out of flush on error
---
xbmc/linux/OMXCore.cpp | 4 ++--
@ -4931,10 +4932,10 @@ index 4ae29ba..4caa304 100644
OMX_ERRORTYPE omx_err = OMX_ErrorNone;
From 01c145711b51499667cb036f19374da08638c501 Mon Sep 17 00:00:00 2001
From eb1c477c0c592f29037a9b14a30e5c23f79b9af4 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Fri, 3 Oct 2014 18:40:06 +0100
Subject: [PATCH 41/59] [SinkPi] Handle multichannel layout more like OMXAudio
Subject: [PATCH 41/61] [SinkPi] Handle multichannel layout more like OMXAudio
---
xbmc/cores/AudioEngine/Sinks/AESinkPi.cpp | 14 +++++++-------
@ -4993,10 +4994,10 @@ index 89684e4..fd9a03d 100644
m_format = format;
m_sinkbuffer_sec_per_byte = 1.0 / (double)(m_format.m_frameSize * m_format.m_sampleRate);
From fdc1ef0847edebd46f98194d1fbc65118f59178b Mon Sep 17 00:00:00 2001
From da6a81c9c7104c0d99f1140e14cf5b97efbd670a Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Mon, 27 Oct 2014 15:23:51 +0000
Subject: [PATCH 42/59] [rbp] Default extract thumbnails to false
Subject: [PATCH 42/61] [rbp] Default extract thumbnails to false
It can take 80 seconds for a single file on a Pi. It can cause crashes with out-of-memory errors.
It genereates a lot of support issues. Best to default to disabled and let users enable it if they must
@ -5026,10 +5027,10 @@ index 79853a8..4c2ef41 100644
<section id="system">
From 1dc7924bcf2248cbf8de6321248caed6ea4b98ef Mon Sep 17 00:00:00 2001
From c6be72242c0a7b7460f6c319c47e553151069a5a Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Tue, 11 Nov 2014 18:14:23 +0000
Subject: [PATCH 43/59] [resamplepi] Try to report the same numbers as ffmpeg
Subject: [PATCH 43/61] [resamplepi] Try to report the same numbers as ffmpeg
---
.../cores/AudioEngine/Engines/ActiveAE/ActiveAEResamplePi.cpp | 11 ++++++-----
@ -5080,10 +5081,10 @@ index 84505bf..2b5bef2 100644
CLog::Log(LOGINFO, "%s::%s = %d", CLASSNAME, __func__, ret);
#endif
From 20feac304c19062189822bab424b424bf95466f7 Mon Sep 17 00:00:00 2001
From 966d1486cb16fd2bb43aae9a5f494594687f697a Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Tue, 11 Nov 2014 20:49:30 +0000
Subject: [PATCH 44/59] [dvdplayer] New scheme for PLL adjustment for video
Subject: [PATCH 44/61] [dvdplayer] New scheme for PLL adjustment for video
clock
---
@ -5198,10 +5199,10 @@ index 02c64a0..37bf4bd 100644
struct SInfo
{
From 2ac649da29b87d196d11c0bf4e5b8421855805d5 Mon Sep 17 00:00:00 2001
From 14568a4a6a45449d3929effd789f7073a92d28ce Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Sat, 15 Nov 2014 12:03:34 +0000
Subject: [PATCH 45/59] [dvdplayer] Add lock for player creation
Subject: [PATCH 45/61] [dvdplayer] Add lock for player creation
---
xbmc/cores/dvdplayer/DVDPlayer.cpp | 3 +++
@ -5247,10 +5248,10 @@ index ef64076..7ea6ea6 100644
+ CCriticalSection m_players_lock;
};
From e8adb55589500303efbc2bc42b9f70e9124b9a74 Mon Sep 17 00:00:00 2001
From 2ac37fc94952151c5b1699152c46fae2c148631b Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Wed, 19 Nov 2014 13:29:43 +0000
Subject: [PATCH 46/59] [dvdplayeraudio] Add advancedsetting for configuring
Subject: [PATCH 46/61] [dvdplayeraudio] Add advancedsetting for configuring
max pll adjustment
---
@ -5319,10 +5320,10 @@ index ca995e3..99ed121 100644
float m_audioPlayCountMinimumPercent;
bool m_dvdplayerIgnoreDTSinWAV;
From f25f04ba93452b312d9ce632030a5adadb9bbca4 Mon Sep 17 00:00:00 2001
From 10475adc38c9035919030e6b17b9d60c2c5e9e25 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Wed, 19 Nov 2014 17:35:44 +0000
Subject: [PATCH 47/59] [mmalrender] Skip some log message in bypass mode
Subject: [PATCH 47/61] [mmalrender] Skip some log message in bypass mode
---
xbmc/cores/VideoRenderers/MMALRenderer.cpp | 9 ++++++---
@ -5360,10 +5361,10 @@ index 03a05de..c0ff30d 100644
// we only want to upload frames once
if (buffer->flipindex++)
From 1e5bd0e8c412b03de0b6fe75f10d8ac67c62469e Mon Sep 17 00:00:00 2001
From 030e02b42f71aac7efdf1c9e0554772503697e72 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Mon, 24 Nov 2014 21:24:25 +0000
Subject: [PATCH 48/59] [mmalcodec] Avoid deinterlace for dvd menus for now
Subject: [PATCH 48/61] [mmalcodec] Avoid deinterlace for dvd menus for now
---
xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 2 +-
@ -5383,10 +5384,10 @@ index 6742e0e..a1f11e9 100644
else if (deinterlace_request == VS_DEINTERLACEMODE_FORCE)
deinterlace = true;
From 2bda900ee4957bb97467cca3f17aaac23606eb64 Mon Sep 17 00:00:00 2001
From c4d184e405053e45b8fdac3e80eafdc0409a8868 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Mon, 24 Nov 2014 22:07:25 +0000
Subject: [PATCH 49/59] [dvdplayervideo] Prod decoder when in stills mode
Subject: [PATCH 49/61] [dvdplayervideo] Prod decoder when in stills mode
An asynchronous hardware decoder doesn't only produce output pictures when new packets arrive.
In dvd stills mode give it a chance to return pictures that weren't ready when frame was decoded.
@ -5463,10 +5464,10 @@ index f030e37..7a8fc10 100644
if (pMsg->IsType(CDVDMsg::GENERAL_SYNCHRONIZE))
From 1dd8bbf0cbaa4eb2b106026c8a6795bbcbea2dc2 Mon Sep 17 00:00:00 2001
From b3522aea35dd182a42979a3d3f98d847593bac54 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Thu, 27 Nov 2014 16:20:56 +0000
Subject: [PATCH 50/59] [mmalcodec] Skip some setup that is not required when
Subject: [PATCH 50/61] [mmalcodec] Skip some setup that is not required when
closing
---
@ -5533,10 +5534,10 @@ index a1f11e9..a11fa65 100644
m_startframe = false;
m_decoderPts = DVD_NOPTS_VALUE;
From 879005d804a40fa39f8100d69c92a686bd07a035 Mon Sep 17 00:00:00 2001
From 98aee3513b7caf14a6bba2e465f28edec5b19837 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Thu, 27 Nov 2014 16:31:56 +0000
Subject: [PATCH 51/59] [languageinvoker] Reduce priority of python threads
Subject: [PATCH 51/61] [languageinvoker] Reduce priority of python threads
---
xbmc/interfaces/generic/LanguageInvokerThread.cpp | 5 +++++
@ -5559,10 +5560,10 @@ index 7b0d903..f92aa3e 100644
}
From f45dc0e93b617bfa41f2433a15e940c54545d306 Mon Sep 17 00:00:00 2001
From bad28af8f1636a612acc0ccc5ec9e43b67abce75 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Thu, 27 Nov 2014 17:53:46 +0000
Subject: [PATCH 52/59] [mmalcodec] Try reducing number of video frames
Subject: [PATCH 52/61] [mmalcodec] Try reducing number of video frames
---
xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 2 +-
@ -5596,10 +5597,10 @@ index 4f81bbd..79a4bfd 100644
virtual const char* GetName(void) { return (const char*)m_pFormatName; }
virtual bool GetCodecStats(double &pts, int &droppedPics);
From 7f2d7176e86207f399922d3fd1bd1194b7de6ef1 Mon Sep 17 00:00:00 2001
From 1b411d8f41b1c8d8d49b950e032fb78cb2b34122 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Mon, 1 Dec 2014 17:31:00 +0000
Subject: [PATCH 53/59] [mmalcodec] Ensure we have requested number of buffers
Subject: [PATCH 53/61] [mmalcodec] Ensure we have requested number of buffers
in non-accelerated case
---
@ -5620,10 +5621,10 @@ index c0ff30d..6d461bd 100644
status = mmal_port_enable(m_vout_input, vout_input_port_cb_static);
From b7e786c973c72b9adb17c745d45ba72110151b30 Mon Sep 17 00:00:00 2001
From fb6f3b4ead397628ec80a4cc37e0f03adc76eeaa Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Wed, 3 Dec 2014 21:17:53 +0000
Subject: [PATCH 54/59] [omxplayer] Add some info about hdmi sync to codec
Subject: [PATCH 54/61] [omxplayer] Add some info about hdmi sync to codec
overlay
---
@ -5704,10 +5705,10 @@ index c8fd5fb..9f26427 100644
bool IsEOS();
bool SubmittedEOS() const { return m_submitted_eos; }
From 7814477833b01bd4478254a5ed275bf9ceee1615 Mon Sep 17 00:00:00 2001
From 6fb024728dc90801ca8e77687658c8deb2b418b8 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Sun, 7 Dec 2014 15:21:18 +0000
Subject: [PATCH 55/59] [omxplayer] Remove test of removed setting, avoids a
Subject: [PATCH 55/61] [omxplayer] Remove test of removed setting, avoids a
log message
---
@ -5740,10 +5741,10 @@ index 66014d4..c2da2d2 100644
dataFormat = AE_FMT_DTS;
m_passthrough = true;
From 674fa6b14184940413b741fc4b4e4df94cb44044 Mon Sep 17 00:00:00 2001
From fe843625b9ad099a11ba8381a8ed9de8bcffec1c Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Sun, 28 Dec 2014 19:13:51 +0000
Subject: [PATCH 56/59] [omxplayer] Skip packet concatenation for WMAV2 files
Subject: [PATCH 56/61] [omxplayer] Skip packet concatenation for WMAV2 files
See: http://forum.kodi.tv/showthread.php?tid=212552
---
@ -5766,10 +5767,10 @@ index 94b673e..1a920f7 100644
if(m_pCodecContext->bits_per_coded_sample == 0)
From ad9ec806c4d916a4b6b633f2b5692a9f4d6edb2e Mon Sep 17 00:00:00 2001
From 1a6ebaab8be9dcc9ae335121189b5f3bf2d19f8a Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Wed, 31 Dec 2014 17:08:52 +0000
Subject: [PATCH 57/59] filesystem: Make browsing into archives enbabled by
Subject: [PATCH 57/61] filesystem: Make browsing into archives enbabled by
default on Pi
This causes issues for people who scan library with archives disabled, then subsequently enable it.
@ -5801,10 +5802,10 @@ index 4c2ef41..3260465 100644
<category id="videoplayer" label="14086" help="36151">
<group id="2">
From 16bd86dde7c87439d67fe353a1edcc0433b98afd Mon Sep 17 00:00:00 2001
From 32b9d35387473c681e524db4c6e82173d498eb40 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Wed, 31 Dec 2014 16:03:32 +0000
Subject: [PATCH 58/59] [PVR] Fix for slow metadata updates of recordings
Subject: [PATCH 58/61] [PVR] Fix for slow metadata updates of recordings
See: http://forum.kodi.tv/showthread.php?tid=210774
@ -5992,10 +5993,10 @@ index 6b8cb14..2bcc834 100644
int Load();
void Unload();
From 969cec1015db149712c65dec90b257098d36767e Mon Sep 17 00:00:00 2001
From deb907165630c7c6bb61f81a005eee94c964105e Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Mon, 29 Dec 2014 17:20:00 +0000
Subject: [PATCH 59/59] [dvdplayer] Allow pll adjustment to go higher, but tail
Subject: [PATCH 59/61] [dvdplayer] Allow pll adjustment to go higher, but tail
off more gradually
---
@ -6029,3 +6030,215 @@ index 5eca79a..b1e396a 100644
m_audioApplyDrc = true;
m_dvdplayerIgnoreDTSinWAV = false;
From 9c137af65807edcfa0e3e9910a1ae8689be7ccae Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Thu, 11 Dec 2014 17:00:57 +0000
Subject: [PATCH 60/61] Fix for UI not showing both extractflags and
extractthumb
---
language/English/strings.po | 11 ++++++++---
system/settings/settings.xml | 10 +++++-----
2 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/language/English/strings.po b/language/English/strings.po
index 24f9636..c54cb25 100755
--- a/language/English/strings.po
+++ b/language/English/strings.po
@@ -10790,7 +10790,7 @@ msgstr ""
#: system/settings/settings.xml
msgctxt "#20433"
-msgid "Extract thumbnails and video information"
+msgid "Extract video information from files"
msgstr ""
#: xbmc/dialogs/GUIDialogSmartPlaylistRule.cpp
@@ -14164,7 +14164,7 @@ msgstr ""
#. Description of setting "Videos -> File lists -> Extract thumbnails and video information" with label #20433
#: system/settings/settings.xml
msgctxt "#36178"
-msgid "Extract thumbnails and metadata information such as codec and aspect ratio from videos."
+msgid "Extract metadata information such as codec and aspect ratio from videos."
msgstr ""
#. Description of setting "Videos -> File lists -> Replace file names with library titles" with label #20419
@@ -14176,7 +14176,7 @@ msgstr ""
#. Description of setting "Videos -> File lists -> Extract thumbnails and video information" with label #20433
#: system/settings/settings.xml
msgctxt "#36180"
-msgid "Extract thumbnails and information, such as codecs and aspect ratio, to display in Library Mode."
+msgid "Extract thumbnails, to display in Library Mode."
msgstr ""
#: system/settings/settings.xml
@@ -16172,3 +16172,8 @@ msgstr ""
msgctxt "#38009"
msgid "%i dB"
msgstr ""
+
+#: system/settings/settings.xml
+msgctxt "#38015"
+msgid "Extract thumbnails from video files"
+msgstr ""
diff --git a/system/settings/settings.xml b/system/settings/settings.xml
index dbddcb6..756475f 100644
--- a/system/settings/settings.xml
+++ b/system/settings/settings.xml
@@ -802,17 +802,17 @@
<control type="spinner" format="string" />
</setting>
<setting id="myvideos.extractflags" type="boolean" label="20433" help="36178">
- <level>1</level>
+ <level>3</level>
<default>true</default>
<control type="toggle" />
</setting>
- <setting id="myvideos.replacelabels" type="boolean" label="20419" help="36179">
- <level>1</level>
+ <setting id="myvideos.extractthumb" type="boolean" label="38015" help="36180">
+ <level>3</level>
<default>true</default>
<control type="toggle" />
</setting>
- <setting id="myvideos.extractthumb" type="boolean" label="20433" help="36180">
- <level>4</level>
+ <setting id="myvideos.replacelabels" type="boolean" label="20419" help="36179">
+ <level>1</level>
<default>true</default>
<control type="toggle" />
</setting>
From 81c40467f830476082680cc7b5242dcf59991ab9 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Mon, 26 Jan 2015 19:24:17 +0000
Subject: [PATCH 61/61] Fix for occasinal heap corruption with font cache
See: PR 4143 issuecomment-71114810
---
xbmc/guilib/GUIFontCache.h | 10 +++++++++-
xbmc/guilib/GUIFontTTF.cpp | 43 ++++++++++++++++++++++++++++++++-----------
2 files changed, 41 insertions(+), 12 deletions(-)
diff --git a/xbmc/guilib/GUIFontCache.h b/xbmc/guilib/GUIFontCache.h
index ff766bf..575ee7d 100644
--- a/xbmc/guilib/GUIFontCache.h
+++ b/xbmc/guilib/GUIFontCache.h
@@ -38,6 +38,7 @@
#include "boost/multi_index/sequenced_index.hpp"
#include "boost/multi_index/hashed_index.hpp"
#include "boost/multi_index/member.hpp"
+#include "boost/shared_ptr.hpp"
#include "TransformMatrix.h"
@@ -201,7 +202,14 @@ struct CGUIFontCacheStaticPosition
void UpdateWithOffsets(const CGUIFontCacheStaticPosition &cached, bool scrolling) {}
};
-typedef std::vector<SVertex> CGUIFontCacheStaticValue;
+struct CGUIFontCacheStaticValue : public boost::shared_ptr<std::vector<SVertex> >
+{
+ void clear()
+ {
+ if (*this)
+ (*this)->clear();
+ }
+};
inline bool Match(const CGUIFontCacheStaticPosition &a, const TransformMatrix &a_m,
const CGUIFontCacheStaticPosition &b, const TransformMatrix &b_m,
diff --git a/xbmc/guilib/GUIFontTTF.cpp b/xbmc/guilib/GUIFontTTF.cpp
index 7d4fc88..4110546 100644
--- a/xbmc/guilib/GUIFontTTF.cpp
+++ b/xbmc/guilib/GUIFontTTF.cpp
@@ -30,6 +30,7 @@
#include "URL.h"
#include "filesystem/File.h"
#include "threads/SystemClock.h"
+#include "boost/make_shared.hpp"
#include <math.h>
@@ -357,6 +358,7 @@ void CGUIFontTTFBase::DrawTextInternal(float x, float y, const vecColors &colors
{
Begin();
+ uint32_t rawAlignment = alignment;
bool dirtyCache;
bool hardwareClipping = g_Windowing.ScissorsCanEffectClipping();
CGUIFontCacheStaticPosition staticPos(x, y);
@@ -376,8 +378,8 @@ void CGUIFontTTFBase::DrawTextInternal(float x, float y, const vecColors &colors
XbmcThreads::SystemClockMillis(),
dirtyCache) :
unusedVertexBuffer;
- std::vector<SVertex> tempVertices;
- std::vector<SVertex> &vertices = hardwareClipping ?
+ boost::shared_ptr<std::vector<SVertex> > tempVertices = boost::make_shared<std::vector<SVertex> >();
+ boost::shared_ptr<std::vector<SVertex> > &vertices = hardwareClipping ?
tempVertices :
m_staticCache.Lookup(staticPos,
colors, text,
@@ -467,7 +469,7 @@ void CGUIFontTTFBase::DrawTextInternal(float x, float y, const vecColors &colors
for (int i = 0; i < 3; i++)
{
- RenderCharacter(startX + cursorX, startY, period, color, !scrolling, vertices);
+ RenderCharacter(startX + cursorX, startY, period, color, !scrolling, *tempVertices);
cursorX += period->advance;
}
break;
@@ -476,7 +478,7 @@ void CGUIFontTTFBase::DrawTextInternal(float x, float y, const vecColors &colors
else if (maxPixelWidth > 0 && cursorX > maxPixelWidth)
break; // exceeded max allowed width - stop rendering
- RenderCharacter(startX + cursorX, startY, ch, color, !scrolling, vertices);
+ RenderCharacter(startX + cursorX, startY, ch, color, !scrolling, *tempVertices);
if ( alignment & XBFONT_JUSTIFIED )
{
if ((*pos & 0xffff) == L' ')
@@ -489,17 +491,36 @@ void CGUIFontTTFBase::DrawTextInternal(float x, float y, const vecColors &colors
}
if (hardwareClipping)
{
- CVertexBuffer newVertexBuffer = CreateVertexBuffer(tempVertices);
+ CVertexBuffer &vertexBuffer = m_dynamicCache.Lookup(dynamicPos,
+ colors, text,
+ rawAlignment, maxPixelWidth,
+ scrolling,
+ XbmcThreads::SystemClockMillis(),
+ dirtyCache);
+ CVertexBuffer newVertexBuffer = CreateVertexBuffer(*tempVertices);
vertexBuffer = newVertexBuffer;
m_vertexTrans.push_back(CTranslatedVertices(0, 0, 0, &vertexBuffer, g_graphicsContext.GetClipRegion()));
}
+ else
+ {
+ m_staticCache.Lookup(staticPos,
+ colors, text,
+ rawAlignment, maxPixelWidth,
+ scrolling,
+ XbmcThreads::SystemClockMillis(),
+ dirtyCache) = *static_cast<CGUIFontCacheStaticValue *>(&tempVertices);
+ /* Append the new vertices to the set collected since the first Begin() call */
+ m_vertex.insert(m_vertex.end(), tempVertices->begin(), tempVertices->end());
+ }
+ }
+ else
+ {
+ if (hardwareClipping)
+ m_vertexTrans.push_back(CTranslatedVertices(dynamicPos.m_x, dynamicPos.m_y, dynamicPos.m_z, &vertexBuffer, g_graphicsContext.GetClipRegion()));
+ else
+ /* Append the vertices from the cache to the set collected since the first Begin() call */
+ m_vertex.insert(m_vertex.end(), vertices->begin(), vertices->end());
}
- else if (hardwareClipping)
- m_vertexTrans.push_back(CTranslatedVertices(dynamicPos.m_x, dynamicPos.m_y, dynamicPos.m_z, &vertexBuffer, g_graphicsContext.GetClipRegion()));
- if (!hardwareClipping)
- /* Append the new vertices (from the cache or otherwise) to the set collected
- * since the first Begin() call */
- m_vertex.insert(m_vertex.end(), vertices.begin(), vertices.end());
End();
}