Author: richard
Date: Mon Feb 9 06:53:22 2009
New Revision: 4090
URL: http://svn.slimdevices.com?rev=4090&root=Jive&view=rev
Log:
r4...@harrypotter (orig r4089): richard | 2009-02-09 14:48:26 +0000
Bug: N/A
Description:
Another attempt at fixing default bpp in Surface:newRGB().
Added Framework:draw() to draw the whole screen to a surface, this can be used
for transitions.
Some white space cleanup.
Modified:
7.4/branches/pango/ (props changed)
7.4/branches/pango/squeezeplay/src/squeezeplay/share/applets/Screenshot/ScreenshotApplet.lua
7.4/branches/pango/squeezeplay/src/squeezeplay/share/jive/JiveMain.lua
7.4/branches/pango/squeezeplay/src/squeezeplay/share/jive/ui/Framework.lua
7.4/branches/pango/squeezeplay/src/squeezeplay/src/ui/jive_framework.c
7.4/branches/pango/squeezeplay/src/squeezeplay/src/ui/jive_surface.c
Propchange: 7.4/branches/pango/
------------------------------------------------------------------------------
--- svk:merge (original)
+++ svk:merge Mon Feb 9 06:53:22 2009
@@ -4,7 +4,7 @@
bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.2/trunk:2921
bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.3/private-branches/jive-refresh:3653
bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.3/trunk:3993
-bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.4/trunk:4082
+bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.4/trunk:4089
bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/7.0:2013
bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/SN:1083
bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/scrolling:1378
Modified:
7.4/branches/pango/squeezeplay/src/squeezeplay/share/applets/Screenshot/ScreenshotApplet.lua
URL:
http://svn.slimdevices.com/7.4/branches/pango/squeezeplay/src/squeezeplay/share/applets/Screenshot/ScreenshotApplet.lua?rev=4090&root=Jive&r1=4089&r2=4090&view=diff
==============================================================================
---
7.4/branches/pango/squeezeplay/src/squeezeplay/share/applets/Screenshot/ScreenshotApplet.lua
(original)
+++
7.4/branches/pango/squeezeplay/src/squeezeplay/share/applets/Screenshot/ScreenshotApplet.lua
Mon Feb 9 06:53:22 2009
@@ -51,7 +51,6 @@
end
end
end
-
local file = path .. string.format("/squeezeplay%04d.bmp", self.number)
self.number = self.number + 1
Modified: 7.4/branches/pango/squeezeplay/src/squeezeplay/share/jive/JiveMain.lua
URL:
http://svn.slimdevices.com/7.4/branches/pango/squeezeplay/src/squeezeplay/share/jive/JiveMain.lua?rev=4090&root=Jive&r1=4089&r2=4090&view=diff
==============================================================================
--- 7.4/branches/pango/squeezeplay/src/squeezeplay/share/jive/JiveMain.lua
(original)
+++ 7.4/branches/pango/squeezeplay/src/squeezeplay/share/jive/JiveMain.lua Mon
Feb 9 06:53:22 2009
@@ -355,6 +355,7 @@
return _fullscreen
end
+
function JiveMain:setFullscreen(fullscreen)
_fullscreen = fullscreen
end
@@ -363,12 +364,12 @@
function JiveMain:setSelectedSkin(appletName)
log:warn(appletName)
if _loadSkin(self, appletName, false, true) then
- self.selectedSkin = appletName
- end
-end
+ self.selectedSkin = appletName
+ end
+end
+
function JiveMain:getSkinParam(key)
-
local skinName = self.selectedSkin or JiveMain:getDefaultSkin()
if key and self.skinParams and self.skinParams[skinName] and
self.skinParams[skinName][key] then
@@ -377,18 +378,16 @@
log:error('no value for skinParam ', key, ' found')
return nil
end
-
-end
+end
+
-- service method to allow other applets to set skin-specific settings like
THUMB_SIZE
function JiveMain:setSkinParams(skinName, settings)
-
_assert(type(settings) == 'table')
if not self.skinParams then
self.skinParams = {}
end
self.skinParams[skinName] = settings
-
end
@@ -399,25 +398,16 @@
end
--- loadSkin
--- XXXX deprecated, to be replaced with per window skinning
-function JiveMain:loadSkin(appletName, method)
- log:debug("loadSkin(", appletName, ")")
-
- local obj = appletManager:loadApplet(appletName)
- assert(obj, "Cannot load skin " .. appletName)
-
- obj[method](obj, jive.ui.style)
-end
-
function JiveMain:setDefaultSkin(appletName)
log:debug("setDefaultSkin(", appletName, ")")
_defaultSkin = appletName
end
+
function JiveMain:getDefaultSkin()
return _defaultSkin or "DefaultSkin"
end
+
-----------------------------------------------------------------------------
-- main()
Modified:
7.4/branches/pango/squeezeplay/src/squeezeplay/share/jive/ui/Framework.lua
URL:
http://svn.slimdevices.com/7.4/branches/pango/squeezeplay/src/squeezeplay/share/jive/ui/Framework.lua?rev=4090&root=Jive&r1=4089&r2=4090&view=diff
==============================================================================
--- 7.4/branches/pango/squeezeplay/src/squeezeplay/share/jive/ui/Framework.lua
(original)
+++ 7.4/branches/pango/squeezeplay/src/squeezeplay/share/jive/ui/Framework.lua
Mon Feb 9 06:53:22 2009
@@ -221,6 +221,8 @@
module.KEY_PAGE_DOWN = jive.ui.KEY_PAGE_DOWN
module.KEY_VOLUME_UP = jive.ui.KEY_VOLUME_UP
module.KEY_VOLUME_DOWN = jive.ui.KEY_VOLUME_DOWN
+
+ module.FRAME_RATE = jive.ui.FRAME_RATE
end
Modified: 7.4/branches/pango/squeezeplay/src/squeezeplay/src/ui/jive_framework.c
URL:
http://svn.slimdevices.com/7.4/branches/pango/squeezeplay/src/squeezeplay/src/ui/jive_framework.c?rev=4090&root=Jive&r1=4089&r2=4090&view=diff
==============================================================================
--- 7.4/branches/pango/squeezeplay/src/squeezeplay/src/ui/jive_framework.c
(original)
+++ 7.4/branches/pango/squeezeplay/src/squeezeplay/src/ui/jive_framework.c Mon
Feb 9 06:53:22 2009
@@ -340,30 +340,25 @@
}
-static int _update_screen(lua_State *L) {
+static int _draw_screen(lua_State *L) {
JiveSurface *srf;
- Uint32 t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0;
+ Uint32 t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0;
clock_t c0 = 0, c1 = 0;
+ bool_t force_redraw;
+
JIVEL_STACK_CHECK_BEGIN(L);
-
- if (!update_screen) {
- return 0;
- }
/* stack is:
* 1: framework
+ * 2: surface (in screen format)
+ * 3: force_redraw
*/
- lua_getfield(L, 1, "screen");
- lua_getfield(L, -1, "surface");
- srf = tolua_tousertype(L, -1, 0);
- lua_replace(L, -2);
-
-
- /* Exit if we have no windows. We need to check
- * again as the event handlers may have changed
- * the window stack */
+ srf = tolua_tousertype(L, 2, 0);
+ force_redraw = lua_toboolean(L, 3);
+
+ /* Exit if we have no windows, nothing to draw */
lua_getfield(L, 1, "windowStack");
if (lua_objlen(L, -1) == 0) {
lua_pop(L, 2);
@@ -372,7 +367,6 @@
return 0;
}
lua_rawgeti(L, -1, 1);
-
if (perfwarn.screen) {
t0 = SDL_GetTicks();
@@ -446,11 +440,8 @@
lua_pushvalue(L, -3); // widget
lua_pushvalue(L, 2); // surface
lua_call(L, 2, 0);
-
- if (perfwarn.screen) t4 = SDL_GetTicks();
- jive_surface_flip(srf);
- }
- else if (jive_dirty_region.w) {
+ }
+ else if (jive_dirty_region.w || force_redraw) {
#if 0
printf("REDRAW: %d,%d %dx%d\n", jive_dirty_region.x,
jive_dirty_region.y, jive_dirty_region.w, jive_dirty_region.h);
#endif
@@ -473,25 +464,21 @@
lua_call(L, 3, 0);
}
jive_dirty_region.w = 0;
-
- /* Flip buffer */
- if (perfwarn.screen) t4 = SDL_GetTicks();
- jive_surface_flip(srf);
}
if (perfwarn.screen) {
- t5 = SDL_GetTicks();
+ t4 = SDL_GetTicks();
c1 = clock();
- if (t5-t0 > perfwarn.screen) {
+ if (t4-t0 > perfwarn.screen) {
if (!t3) {
- t3 = t2; t4 = t2;
- }
- printf("update_screen > %dms: %4dms (%dms) [layout:%dms
animate:%dms background:%dms draw:%dms flip:%dms]\n",
- perfwarn.screen, t5-t0, (int)((c1-c0) * 1000
/ CLOCKS_PER_SEC), t1-t0, t2-t1, t3-t2, t4-t3, t5-t4);
+ t3 = t2;
+ }
+ printf("update_screen > %dms: %4dms (%dms) [layout:%dms
animate:%dms background:%dms draw:%dms]\n",
+ perfwarn.screen, t4-t0, (int)((c1-c0) * 1000
/ CLOCKS_PER_SEC), t1-t0, t2-t1, t3-t2, t4-t3);
}
}
- lua_pop(L, 4);
+ lua_pop(L, 3);
JIVEL_STACK_CHECK_END(L);
@@ -499,22 +486,62 @@
}
+int jiveL_draw(lua_State *L) {
+ /* stack is:
+ * 1: framework
+ * 2: surface
+ */
+
+ lua_pushcfunction(L, jive_traceback); /* push traceback function */
+
+ lua_pushcfunction(L, _draw_screen);
+ lua_pushvalue(L, 1);
+ lua_pushvalue(L, 2);
+ lua_pushboolean(L, 1);
+
+ if (lua_pcall(L, 3, 0, 3) != 0) {
+ fprintf(stderr, "error in draw_screen:\n\t%s\n",
lua_tostring(L, -1));
+ return 0;
+ }
+
+ lua_pop(L, 1);
+
+ return 0;
+}
+
+
int jiveL_update_screen(lua_State *L) {
+ JiveSurface *screen;
+
/* stack is:
* 1: framework
*/
+ if (!update_screen) {
+ return 0;
+ }
+
lua_pushcfunction(L, jive_traceback); /* push traceback function */
- lua_pushcfunction(L, _update_screen);
+ lua_pushcfunction(L, _draw_screen);
lua_pushvalue(L, 1);
- if (lua_pcall(L, 1, 0, 2) != 0) {
- fprintf(stderr, "error in event function:\n\t%s\n",
lua_tostring(L, -1));
+ lua_getfield(L, 1, "screen");
+ lua_getfield(L, -1, "surface");
+ lua_replace(L, -2);
+ screen = tolua_tousertype(L, -1, 0);
+
+ lua_pushboolean(L, 0);
+
+ if (lua_pcall(L, 3, 0, 2) != 0) {
+ fprintf(stderr, "error in update_screen:\n\t%s\n",
lua_tostring(L, -1));
return 0;
}
- lua_pop(L, 1);
+ /* flip screen */
+ jive_surface_flip(screen);
+
+ lua_pop(L, 2);
return 0;
}
@@ -1293,6 +1320,7 @@
{ "quit", jiveL_quit },
{ "processEvents", jiveL_process_events },
{ "setUpdateScreen", jiveL_set_update_screen },
+ { "draw", jiveL_draw },
{ "updateScreen", jiveL_update_screen },
{ "reDraw", jiveL_redraw },
{ "pushEvent", jiveL_push_event },
Modified: 7.4/branches/pango/squeezeplay/src/squeezeplay/src/ui/jive_surface.c
URL:
http://svn.slimdevices.com/7.4/branches/pango/squeezeplay/src/squeezeplay/src/ui/jive_surface.c?rev=4090&root=Jive&r1=4089&r2=4090&view=diff
==============================================================================
--- 7.4/branches/pango/squeezeplay/src/squeezeplay/src/ui/jive_surface.c
(original)
+++ 7.4/branches/pango/squeezeplay/src/squeezeplay/src/ui/jive_surface.c Mon
Feb 9 06:53:22 2009
@@ -8,9 +8,6 @@
#include "common.h"
#include "jive.h"
-
-Uint16 default_bpp;
-
JiveSurface *jive_surface_set_video_mode(Uint16 w, Uint16 h, Uint16 bpp, bool
fullscreen) {
@@ -53,8 +50,6 @@
DEBUG_TRACE("Video mode: %d bits/pixel %d bytes/pixel [R<<%d
G<<%d B<<%d]", sdl->format->BitsPerPixel, sdl->format->BytesPerPixel,
sdl->format->Rshift, sdl->format->Gshift, sdl->format->Bshift)
}
- default_bpp = bpp;
-
srf = calloc(sizeof(JiveSurface), 1);
srf->refcount = 1;
srf->sdl = sdl;
@@ -64,9 +59,13 @@
JiveSurface *jive_surface_newRGB(Uint16 w, Uint16 h) {
JiveSurface *srf;
- SDL_Surface *sdl;
-
- sdl = SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, default_bpp, 0, 0, 0,
0);
+ SDL_Surface *screen, *sdl;
+ int bpp;
+
+ screen = SDL_GetVideoSurface();
+ bpp = screen->format->BitsPerPixel;
+
+ sdl = SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, bpp, 0, 0, 0, 0);
/* Opaque surface */
SDL_SetAlpha(sdl, SDL_SRCALPHA, SDL_ALPHA_OPAQUE);
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/cgi-bin/mailman/listinfo/jive-checkins