mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
xbmc: update to xbmc-13.alpha-024ef6b
This commit is contained in:
parent
b793e81161
commit
e9b61393ed
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xbmc-theme-Confluence"
|
||||
PKG_VERSION="13.alpha-6ea5b07"
|
||||
PKG_VERSION="13.alpha-024ef6b"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xbmc"
|
||||
PKG_VERSION="13.alpha-6ea5b07"
|
||||
PKG_VERSION="13.alpha-024ef6b"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -1,34 +0,0 @@
|
||||
From ccab04501887f29ebe9c6b3001892bfeedef5ba3 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Mon, 18 Nov 2013 11:35:17 +0200
|
||||
Subject: [PATCH] move timezone settings to basic level
|
||||
|
||||
---
|
||||
system/settings/settings.xml | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/system/settings/settings.xml b/system/settings/settings.xml
|
||||
index aa1cdd7..2d5e903 100644
|
||||
--- a/system/settings/settings.xml
|
||||
+++ b/system/settings/settings.xml
|
||||
@@ -145,7 +145,7 @@
|
||||
</group>
|
||||
<group id="2">
|
||||
<setting id="locale.timezonecountry" type="string" label="14079" help="36117">
|
||||
- <level>2</level>
|
||||
+ <level>0</level>
|
||||
<default>default</default> <!-- will be properly set on startup -->
|
||||
<constraints>
|
||||
<options>timezonecountries</options>
|
||||
@@ -153,7 +153,7 @@
|
||||
<control type="list" format="string" />
|
||||
</setting>
|
||||
<setting id="locale.timezone" type="string" label="14080" help="36118">
|
||||
- <level>2</level>
|
||||
+ <level>0</level>
|
||||
<default>default</default> <!-- will be properly set on startup -->
|
||||
<constraints>
|
||||
<options>timezones</options>
|
||||
--
|
||||
1.8.3.2
|
||||
|
@ -1,325 +0,0 @@
|
||||
From 7a3820846949752172bc80f5ca6efab7a12b160a Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Thu, 19 Dec 2013 16:13:08 +0000
|
||||
Subject: [PATCH 1/2] [spectrum] cosmetic: Use static where appropriate
|
||||
|
||||
---
|
||||
.../OpenGLSpectrum/opengl_spectrum.cpp | 29 +++++++++++-----------
|
||||
1 file changed, 14 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/xbmc/visualizations/OpenGLSpectrum/opengl_spectrum.cpp b/xbmc/visualizations/OpenGLSpectrum/opengl_spectrum.cpp
|
||||
index a039fc4..df5f70a 100644
|
||||
--- a/xbmc/visualizations/OpenGLSpectrum/opengl_spectrum.cpp
|
||||
+++ b/xbmc/visualizations/OpenGLSpectrum/opengl_spectrum.cpp
|
||||
@@ -59,16 +59,15 @@
|
||||
#define glLoadIdentity() vis_shader->LoadIdentity()
|
||||
#define glFrustum(a,b,c,d,e,f) vis_shader->Frustum(a,b,c,d,e,f)
|
||||
|
||||
-GLenum g_mode = GL_TRIANGLES;
|
||||
-float g_fWaveform[2][512];
|
||||
-const char *frag = "precision mediump float; \n"
|
||||
+static GLenum g_mode = GL_TRIANGLES;
|
||||
+static const char *frag = "precision mediump float; \n"
|
||||
"varying lowp vec4 m_colour; \n"
|
||||
"void main () \n"
|
||||
"{ \n"
|
||||
" gl_FragColor = m_colour; \n"
|
||||
"}\n";
|
||||
|
||||
-const char *vert = "attribute vec4 m_attrpos;\n"
|
||||
+static const char *vert = "attribute vec4 m_attrpos;\n"
|
||||
"attribute vec4 m_attrcol;\n"
|
||||
"attribute vec4 m_attrcord0;\n"
|
||||
"attribute vec4 m_attrcord1;\n"
|
||||
@@ -86,24 +85,24 @@
|
||||
" m_cord1 = m_attrcord1;\n"
|
||||
"}\n";
|
||||
|
||||
-CVisGUIShader *vis_shader = NULL;
|
||||
+static CVisGUIShader *vis_shader = NULL;
|
||||
|
||||
#elif defined(HAS_SDL_OPENGL)
|
||||
#include <GL/glew.h>
|
||||
-GLenum g_mode = GL_FILL;
|
||||
+static GLenum g_mode = GL_FILL;
|
||||
|
||||
#endif
|
||||
|
||||
#define NUM_BANDS 16
|
||||
|
||||
-GLfloat x_angle = 20.0, x_speed = 0.0;
|
||||
-GLfloat y_angle = 45.0, y_speed = 0.5;
|
||||
-GLfloat z_angle = 0.0, z_speed = 0.0;
|
||||
-GLfloat heights[16][16], cHeights[16][16], scale;
|
||||
-GLfloat hSpeed = 0.05;
|
||||
+static GLfloat x_angle = 20.0, x_speed = 0.0;
|
||||
+static GLfloat y_angle = 45.0, y_speed = 0.5;
|
||||
+static GLfloat z_angle = 0.0, z_speed = 0.0;
|
||||
+static GLfloat heights[16][16], cHeights[16][16], scale;
|
||||
+static GLfloat hSpeed = 0.05;
|
||||
|
||||
#if defined(HAS_SDL_OPENGL)
|
||||
-void draw_rectangle(GLfloat x1, GLfloat y1, GLfloat z1, GLfloat x2, GLfloat y2, GLfloat z2)
|
||||
+static void draw_rectangle(GLfloat x1, GLfloat y1, GLfloat z1, GLfloat x2, GLfloat y2, GLfloat z2)
|
||||
{
|
||||
if(y1 == y2)
|
||||
{
|
||||
@@ -127,7 +126,7 @@ void draw_rectangle(GLfloat x1, GLfloat y1, GLfloat z1, GLfloat x2, GLfloat y2,
|
||||
}
|
||||
}
|
||||
|
||||
-void draw_bar(GLfloat x_offset, GLfloat z_offset, GLfloat height, GLfloat red, GLfloat green, GLfloat blue )
|
||||
+static void draw_bar(GLfloat x_offset, GLfloat z_offset, GLfloat height, GLfloat red, GLfloat green, GLfloat blue )
|
||||
{
|
||||
GLfloat width = 0.1;
|
||||
|
||||
@@ -158,7 +157,7 @@ void draw_bar(GLfloat x_offset, GLfloat z_offset, GLfloat height, GLfloat red, G
|
||||
|
||||
#elif defined(HAS_GLES)
|
||||
|
||||
-void draw_bar(GLfloat x_offset, GLfloat z_offset, GLfloat height, GLfloat red, GLfloat green, GLfloat blue )
|
||||
+static void draw_bar(GLfloat x_offset, GLfloat z_offset, GLfloat height, GLfloat red, GLfloat green, GLfloat blue )
|
||||
{
|
||||
// avoid zero sized bars, which results in overlapping triangles of same depth and display artefacts
|
||||
height = std::max(height, 1e-3f);
|
||||
@@ -220,7 +219,7 @@ void draw_bar(GLfloat x_offset, GLfloat z_offset, GLfloat height, GLfloat red, G
|
||||
}
|
||||
#endif
|
||||
|
||||
-void draw_bars(void)
|
||||
+static void draw_bars(void)
|
||||
{
|
||||
int x,y;
|
||||
GLfloat x_offset, z_offset, r_base, b_base;
|
||||
--
|
||||
1.8.5.1
|
||||
|
||||
|
||||
From cd5fd3c26427ace2d0abe7d938d828313ed58105 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Thu, 19 Dec 2013 17:03:14 +0000
|
||||
Subject: [PATCH 2/2] [spectrum] Draw spectrum as a single object
|
||||
|
||||
glDrawElements is called 256 times per frame, once for each bar. It is more efficient to batch up larger blocks.
|
||||
This change draws the specrum with a single glDrawElements call.
|
||||
|
||||
Looking at visualisation in full screen mode, it used to top out at 75 fps. With this PR it can hit 125 fps.
|
||||
---
|
||||
.../OpenGLSpectrum/opengl_spectrum.cpp | 163 +++++++++++++--------
|
||||
1 file changed, 105 insertions(+), 58 deletions(-)
|
||||
|
||||
diff --git a/xbmc/visualizations/OpenGLSpectrum/opengl_spectrum.cpp b/xbmc/visualizations/OpenGLSpectrum/opengl_spectrum.cpp
|
||||
index df5f70a..9d0e97f 100644
|
||||
--- a/xbmc/visualizations/OpenGLSpectrum/opengl_spectrum.cpp
|
||||
+++ b/xbmc/visualizations/OpenGLSpectrum/opengl_spectrum.cpp
|
||||
@@ -33,6 +33,7 @@
|
||||
|
||||
#include "addons/include/xbmc_vis_dll.h"
|
||||
#include <string.h>
|
||||
+#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
|
||||
@@ -126,7 +127,7 @@ static void draw_rectangle(GLfloat x1, GLfloat y1, GLfloat z1, GLfloat x2, GLflo
|
||||
}
|
||||
}
|
||||
|
||||
-static void draw_bar(GLfloat x_offset, GLfloat z_offset, GLfloat height, GLfloat red, GLfloat green, GLfloat blue )
|
||||
+static void draw_bar(GLfloat x_offset, GLfloat z_offset, GLfloat height, GLfloat red, GLfloat green, GLfloat blue, int index)
|
||||
{
|
||||
GLfloat width = 0.1;
|
||||
|
||||
@@ -157,65 +158,101 @@ static void draw_bar(GLfloat x_offset, GLfloat z_offset, GLfloat height, GLfloat
|
||||
|
||||
#elif defined(HAS_GLES)
|
||||
|
||||
-static void draw_bar(GLfloat x_offset, GLfloat z_offset, GLfloat height, GLfloat red, GLfloat green, GLfloat blue )
|
||||
+static GLfloat *m_col;
|
||||
+static GLfloat *m_ver;
|
||||
+static GLushort *m_idx;
|
||||
+
|
||||
+static void draw_bar(GLfloat x_offset, GLfloat z_offset, GLfloat height, GLfloat red, GLfloat green, GLfloat blue, int index)
|
||||
{
|
||||
+ if (!m_col || !m_ver || !m_idx)
|
||||
+ return;
|
||||
+
|
||||
// avoid zero sized bars, which results in overlapping triangles of same depth and display artefacts
|
||||
height = std::max(height, 1e-3f);
|
||||
- GLfloat col[] = {
|
||||
- red * 0.1f, green * 0.1f, blue * 0.1f,
|
||||
- red * 0.2f, green * 0.2f, blue * 0.2f,
|
||||
- red * 0.3f, green * 0.3f, blue * 0.3f,
|
||||
- red * 0.4f, green * 0.4f, blue * 0.4f,
|
||||
- red * 0.5f, green * 0.5f, blue * 0.5f,
|
||||
- red * 0.6f, green * 0.6f, blue * 0.6f,
|
||||
- red * 0.7f, green * 0.7f, blue * 0.7f,
|
||||
- red * 0.8f, green * 0.8f, blue *0.8f
|
||||
- };
|
||||
- GLfloat ver[] = {
|
||||
- x_offset + 0.0f, 0.0f, z_offset + 0.0f,
|
||||
- x_offset + 0.1f, 0.0f, z_offset + 0.0f,
|
||||
- x_offset + 0.1f, 0.0f, z_offset + 0.1f,
|
||||
- x_offset + 0.0f, 0.0f, z_offset + 0.1f,
|
||||
- x_offset + 0.0f, height, z_offset + 0.0f,
|
||||
- x_offset + 0.1f, height, z_offset + 0.0f,
|
||||
- x_offset + 0.1f, height, z_offset + 0.1f,
|
||||
- x_offset + 0.0f, height, z_offset + 0.1f
|
||||
- };
|
||||
-
|
||||
- GLubyte idx[] = {
|
||||
- // Bottom
|
||||
- 0, 1, 2,
|
||||
- 0, 2, 3,
|
||||
- // Left
|
||||
- 0, 4, 7,
|
||||
- 0, 7, 3,
|
||||
- // Back
|
||||
- 3, 7, 6,
|
||||
- 3, 6, 2,
|
||||
- // Right
|
||||
- 1, 5, 6,
|
||||
- 1, 6, 2,
|
||||
- // Front
|
||||
- 0, 4, 5,
|
||||
- 0, 5, 1,
|
||||
- // Top
|
||||
- 4, 5, 6,
|
||||
- 4, 6, 7
|
||||
- };
|
||||
-
|
||||
- GLint posLoc = vis_shader->GetPosLoc();
|
||||
- GLint colLoc = vis_shader->GetColLoc();
|
||||
-
|
||||
- glVertexAttribPointer(colLoc, 3, GL_FLOAT, 0, 0, col);
|
||||
- glVertexAttribPointer(posLoc, 3, GL_FLOAT, 0, 0, ver);
|
||||
-
|
||||
- glEnableVertexAttribArray(posLoc);
|
||||
- glEnableVertexAttribArray(colLoc);
|
||||
-
|
||||
- glDrawElements(g_mode, 36, GL_UNSIGNED_BYTE, idx);
|
||||
-
|
||||
- glDisableVertexAttribArray(posLoc);
|
||||
- glDisableVertexAttribArray(colLoc);
|
||||
+ GLfloat *ver = m_ver + 3 * 8 * index;
|
||||
+ // just need to update the height vertex, all else is the same
|
||||
+ for (int i=0; i<8; i++)
|
||||
+ {
|
||||
+ ver[1] = (((i+0)>>2)&1) * height;
|
||||
+ ver += 3;
|
||||
+ }
|
||||
+ // on last index, draw the object
|
||||
+ if (index == 16*16-1)
|
||||
+ {
|
||||
+ GLint posLoc = vis_shader->GetPosLoc();
|
||||
+ GLint colLoc = vis_shader->GetColLoc();
|
||||
+
|
||||
+ glVertexAttribPointer(colLoc, 3, GL_FLOAT, 0, 0, m_col);
|
||||
+ glVertexAttribPointer(posLoc, 3, GL_FLOAT, 0, 0, m_ver);
|
||||
+
|
||||
+ glEnableVertexAttribArray(posLoc);
|
||||
+ glEnableVertexAttribArray(colLoc);
|
||||
+
|
||||
+ glDrawElements(g_mode, 16*16*36, GL_UNSIGNED_SHORT, m_idx);
|
||||
+
|
||||
+ glDisableVertexAttribArray(posLoc);
|
||||
+ glDisableVertexAttribArray(colLoc);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void init_bars(void)
|
||||
+{
|
||||
+ if (!m_col || !m_ver || !m_idx)
|
||||
+ return;
|
||||
+
|
||||
+ GLfloat x_offset, z_offset, r_base, b_base;
|
||||
+ for(int y = 0; y < 16; y++)
|
||||
+ {
|
||||
+ z_offset = -1.6 + ((15 - y) * 0.2);
|
||||
+
|
||||
+ b_base = y * (1.0 / 15);
|
||||
+ r_base = 1.0 - b_base;
|
||||
+
|
||||
+ for(int x = 0; x < 16; x++)
|
||||
+ {
|
||||
+ x_offset = -1.6 + ((float)x * 0.2);
|
||||
+
|
||||
+ GLfloat red = r_base - (float(x) * (r_base / 15.0));
|
||||
+ GLfloat green = (float)x * (1.0 / 15);
|
||||
+ GLfloat blue = b_base;
|
||||
+ int index = 16*y+x;
|
||||
+ GLfloat *col = m_col + 3 * 8 * index;
|
||||
+ for (int i=0; i<8; i++)
|
||||
+ {
|
||||
+ float scale = 0.1f * i;
|
||||
+ *col++ = red * scale;
|
||||
+ *col++ = green * scale;
|
||||
+ *col++ = blue * scale;
|
||||
+ }
|
||||
+ GLfloat *ver = m_ver + 3 * 8 * index;
|
||||
+ for (int i=0; i<8; i++)
|
||||
+ {
|
||||
+ *ver++ = x_offset + (((i+1)>>1)&1) * 0.1f;
|
||||
+ *ver++ = 0; // height - filled in later
|
||||
+ *ver++ = z_offset + (((i+0)>>1)&1) * 0.1f;
|
||||
+ }
|
||||
+ GLushort *idx = m_idx + 36 * index;
|
||||
+ GLushort startidx = 8 * index;
|
||||
+ // Bottom
|
||||
+ *idx++ = startidx + 0; *idx++ = startidx + 1; *idx++ = startidx + 2;
|
||||
+ *idx++ = startidx + 0; *idx++ = startidx + 2; *idx++ = startidx + 3;
|
||||
+ // Left
|
||||
+ *idx++ = startidx + 0; *idx++ = startidx + 4; *idx++ = startidx + 7;
|
||||
+ *idx++ = startidx + 0; *idx++ = startidx + 7; *idx++ = startidx + 3;
|
||||
+ // Back
|
||||
+ *idx++ = startidx + 3; *idx++ = startidx + 7; *idx++ = startidx + 6;
|
||||
+ *idx++ = startidx + 3; *idx++ = startidx + 6; *idx++ = startidx + 2;
|
||||
+ // Right
|
||||
+ *idx++ = startidx + 1; *idx++ = startidx + 5; *idx++ = startidx + 6;
|
||||
+ *idx++ = startidx + 1; *idx++ = startidx + 6; *idx++ = startidx + 2;
|
||||
+ // Front
|
||||
+ *idx++ = startidx + 0; *idx++ = startidx + 4; *idx++ = startidx + 5;
|
||||
+ *idx++ = startidx + 0; *idx++ = startidx + 5; *idx++ = startidx + 1;
|
||||
+ // Top
|
||||
+ *idx++ = startidx + 4; *idx++ = startidx + 5; *idx++ = startidx + 6;
|
||||
+ *idx++ = startidx + 4; *idx++ = startidx + 6; *idx++ = startidx + 7;
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -253,7 +290,7 @@ static void draw_bars(void)
|
||||
}
|
||||
draw_bar(x_offset, z_offset,
|
||||
cHeights[y][x], r_base - (float(x) * (r_base / 15.0)),
|
||||
- (float)x * (1.0 / 15), b_base);
|
||||
+ (float)x * (1.0 / 15), b_base, 16*y+x);
|
||||
}
|
||||
}
|
||||
glEnd();
|
||||
@@ -282,6 +319,10 @@ ADDON_STATUS ADDON_Create(void* hdl, void* props)
|
||||
delete vis_shader;
|
||||
return ADDON_STATUS_UNKNOWN;
|
||||
}
|
||||
+ m_col = (GLfloat *)malloc(16*16*3*8 * sizeof(GLfloat *));
|
||||
+ m_ver = (GLfloat *)malloc(16*16*3*8 * sizeof(GLfloat *));
|
||||
+ m_idx = (GLushort *)malloc(16*16*36 * sizeof(GLushort *));
|
||||
+ init_bars();
|
||||
#endif
|
||||
|
||||
scale = 1.0 / log(256.0);
|
||||
@@ -455,6 +496,12 @@ ADDON_STATUS ADDON_Create(void* hdl, void* props)
|
||||
vis_shader->Free();
|
||||
delete vis_shader;
|
||||
}
|
||||
+ free(m_col);
|
||||
+ free(m_ver);
|
||||
+ free(m_idx);
|
||||
+ m_col = NULL;
|
||||
+ m_ver = NULL;
|
||||
+ m_idx = NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
--
|
||||
1.8.5.1
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,174 +0,0 @@
|
||||
From 2c76d1f3782265a42835ab4b897585063eebdbac Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Sat, 28 Sep 2013 00:16:05 +0100
|
||||
Subject: [PATCH 1/2] [rbp/gui] Add switch between higher and lower quality
|
||||
textures
|
||||
|
||||
To save memory we default to 16bpp textures,
|
||||
but provide a GUI option to increase that to 32bpp.
|
||||
---
|
||||
language/English/strings.po | 9 +++++++++
|
||||
system/settings/rbp.xml | 5 +++++
|
||||
xbmc/cores/omxplayer/OMXImage.cpp | 3 ++-
|
||||
3 files changed, 16 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/language/English/strings.po b/language/English/strings.po
|
||||
index 80c02aa..bc8be7d 100755
|
||||
--- a/language/English/strings.po
|
||||
+++ b/language/English/strings.po
|
||||
@@ -14895,6 +14895,11 @@ msgctxt "#36546"
|
||||
msgid "Sets the visual depth of subtitles for stereoscopic videos. The higher the value, the closer the subtitles will appear to the viewer."
|
||||
msgstr ""
|
||||
|
||||
+#: system/settings/rbp.xml
|
||||
+msgctxt "#36547"
|
||||
+msgid "Use higher quality textures for covers and fanart"
|
||||
+msgstr ""
|
||||
+
|
||||
#empty strings from id 36547 to 36999
|
||||
#reserved strings 365XX
|
||||
|
||||
@@ -14958,4 +14963,8 @@ msgstr ""
|
||||
#: system/settings/settings.xml
|
||||
msgctxt "#37019"
|
||||
msgid "Enables system keys like printscreen, alt-tab and volume keys when in fullscreen"
|
||||
+
|
||||
+#: system/settings/rbp.xml
|
||||
+msgctxt "#37020"
|
||||
+msgid "Enable 32 bit textures"
|
||||
msgstr ""
|
||||
diff --git a/system/settings/rbp.xml b/system/settings/rbp.xml
|
||||
index cfdeea6..836a0e9 100644
|
||||
--- a/system/settings/rbp.xml
|
||||
+++ b/system/settings/rbp.xml
|
||||
@@ -31,6 +31,11 @@
|
||||
<setting id="videoscreen.fakefullscreen">
|
||||
<visible>false</visible>
|
||||
</setting>
|
||||
+ <setting id="videoscreen.textures32" type="boolean" label="37020" help="36547">
|
||||
+ <level>2</level>
|
||||
+ <default>false</default>
|
||||
+ <control type="toggle" />
|
||||
+ </setting>
|
||||
</group>
|
||||
<group id="3">
|
||||
<setting id="videoscreen.vsync">
|
||||
diff --git a/xbmc/cores/omxplayer/OMXImage.cpp b/xbmc/cores/omxplayer/OMXImage.cpp
|
||||
index 16fc05c..2bf34e7 100644
|
||||
--- a/xbmc/cores/omxplayer/OMXImage.cpp
|
||||
+++ b/xbmc/cores/omxplayer/OMXImage.cpp
|
||||
@@ -206,7 +206,8 @@ void COMXImage::AllocTextureInternal(struct textureinfo *tex)
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, tex->width, tex->height, 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, 0);
|
||||
+ GLenum type = CSettings::Get().GetBool("videoscreen.textures32") ? GL_UNSIGNED_BYTE:GL_UNSIGNED_SHORT_5_6_5;
|
||||
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, tex->width, tex->height, 0, GL_RGB, type, 0);
|
||||
tex->egl_image = eglCreateImageKHR(m_egl_display, m_egl_context, EGL_GL_TEXTURE_2D_KHR, (EGLClientBuffer)tex->texture, NULL);
|
||||
tex->sync.Set();
|
||||
GLint m_result;
|
||||
--
|
||||
1.8.5.1
|
||||
|
||||
|
||||
From ec154c1004ce7a4987f435a6dc61e5417bde1f43 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Sat, 28 Sep 2013 00:37:13 +0100
|
||||
Subject: [PATCH 2/2] [rbp/gui] Add switch to remove GUI 720p limit
|
||||
|
||||
---
|
||||
language/English/strings.po | 10 ++++++++++
|
||||
system/settings/rbp.xml | 10 ++++++++++
|
||||
xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp | 14 ++++++++++----
|
||||
3 files changed, 30 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/language/English/strings.po b/language/English/strings.po
|
||||
index bc8be7d..e263922 100755
|
||||
--- a/language/English/strings.po
|
||||
+++ b/language/English/strings.po
|
||||
@@ -14900,6 +14900,11 @@ msgctxt "#36547"
|
||||
msgid "Use higher quality textures for covers and fanart"
|
||||
msgstr ""
|
||||
|
||||
+#: system/settings/rbp.xml
|
||||
+msgctxt "#36548"
|
||||
+msgid "Limits resolution of GUI to save memory. Does not affect video playback. Use 1080 for unlimited. Requires restart."
|
||||
+msgstr ""
|
||||
+
|
||||
#empty strings from id 36547 to 36999
|
||||
#reserved strings 365XX
|
||||
|
||||
@@ -14968,3 +14973,8 @@ msgid "Enables system keys like printscreen, alt-tab and volume keys when in ful
|
||||
msgctxt "#37020"
|
||||
msgid "Enable 32 bit textures"
|
||||
msgstr ""
|
||||
+
|
||||
+#: system/settings/rbp.xml
|
||||
+msgctxt "#37021"
|
||||
+msgid "Set GUI resolution limit"
|
||||
+msgstr ""
|
||||
diff --git a/system/settings/rbp.xml b/system/settings/rbp.xml
|
||||
index 836a0e9..30ba225 100644
|
||||
--- a/system/settings/rbp.xml
|
||||
+++ b/system/settings/rbp.xml
|
||||
@@ -36,6 +36,16 @@
|
||||
<default>false</default>
|
||||
<control type="toggle" />
|
||||
</setting>
|
||||
+ <setting id="videoscreen.limitgui" type="integer" label="37021" help="36548">
|
||||
+ <level>2</level>
|
||||
+ <default>1080</default>
|
||||
+ <constraints>
|
||||
+ <minimum>540</minimum>
|
||||
+ <step>16</step>
|
||||
+ <maximum>1080</maximum>
|
||||
+ </constraints>
|
||||
+ <control type="edit" format="integer" />
|
||||
+ </setting>
|
||||
</group>
|
||||
<group id="3">
|
||||
<setting id="videoscreen.vsync">
|
||||
diff --git a/xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp b/xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp
|
||||
index 5a1594c..dc47095 100644
|
||||
--- a/xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp
|
||||
+++ b/xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp
|
||||
@@ -25,6 +25,7 @@
|
||||
#include "guilib/gui3d.h"
|
||||
#include "linux/DllBCM.h"
|
||||
#include "utils/StringUtils.h"
|
||||
+#include "settings/Settings.h"
|
||||
|
||||
#ifndef __VIDEOCORE4__
|
||||
#define __VIDEOCORE4__
|
||||
@@ -354,19 +355,24 @@ static float get_display_aspect_ratio(SDTV_ASPECT_T aspect)
|
||||
|
||||
static bool ClampToGUIDisplayLimits(int &width, int &height)
|
||||
{
|
||||
- const int max_width = 1280, max_height = 720;
|
||||
+ float max_height = (float)CSettings::Get().GetInt("videoscreen.limitgui");
|
||||
+ float default_ar = 16.0f/9.0f;
|
||||
+ if (max_height < 540.0f || max_height > 1080.0f)
|
||||
+ max_height = 1080.0f;
|
||||
+
|
||||
float ar = (float)width/(float)height;
|
||||
+ float max_width = max_height * default_ar;
|
||||
// bigger than maximum, so need to clamp
|
||||
if (width > max_width || height > max_height) {
|
||||
// wider than max, so clamp width first
|
||||
- if (ar > (float)max_width/(float)max_height)
|
||||
+ if (ar > default_ar)
|
||||
{
|
||||
width = max_width;
|
||||
- height = (float)max_width / ar + 0.5f;
|
||||
+ height = max_width / ar + 0.5f;
|
||||
// taller than max, so clamp height first
|
||||
} else {
|
||||
height = max_height;
|
||||
- width = (float)max_height * ar + 0.5f;
|
||||
+ width = max_height * ar + 0.5f;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
--
|
||||
1.8.5.1
|
||||
|
Loading…
x
Reference in New Issue
Block a user