Hi there,
I've been trying to figure out how to solve two use cases, and I've found a
lot of similarities:
* Carousel album cover downloaded from internet.
* Pdf asynchronous presentation (quite like what I did with opt (bug
#410), but asynchronously to save video memory).
In both use cases I want to save video memory as much as possible. I want to
write a generic set of classes for this purposes, this is my intial draft:
--- * ---
== PendingTaskActor ===
- Used to give feedback about the loading state.
- It would be also neat to provide a default one, so the user of the API
doesn't need to create it's own thing. I'm thinking in a generic spin or
something like that.
- It should be possible to ask it not to waste any video memory (whenever
the task is done) without destroying it.
=== Async/LazyActor ===
- The one that as a loaded/unloaded state and shows the PendingTaskActor
until the asynchronous operation is done
- It should be possible to set/get the PendingTaskActor.
- If the actor is unloaded, then it should waste as less memory as
possible.
- It should has a "loaded" signal and load/unload members. The load should
be asynchronous.
- Once the content is loaded, the PendingTaskActor should not waste video
memory.
=== Async/LazyContainer ===
- This container is responsible to tell the lazy actor whether to load its
content into the memory or not.
- It should has a list of lazy actors, and the user should set the number
of loaded actors
- it should have a "current actor", the main one shown (the current album,
or the current pdf slide)
- it should be possible to say how many actors are loaded before the
current actor, and after the currect actor (a shift value between 0.0 and
1.0)
- next/prev members are needed.
- It also should have one PendingTaskActor that should be used as a
pattern for the childs.
--- * ---
This is the first time that I try to write a GObject API for generic
purposes, and I don't know the clutter API very well, so I'll need some help
in the design of this, any input is really appreciated, some questions:
- What should I do to make an actor not to waste any video memory
- Should I implement the Async/LazyActor as an interface? May I implement it
as a ClutterContainer to be able to show the PendingTaskActor as well?
- How can I make the PendingTaskActor not to waste any video memory once the
content is loaded?
- Should I split the AsyncActor and the LazyActor as different interfaces?
- Am I on crack?
I've attached a diagram showing the idea more graphically.
PS: I'm going to implement it with Vala (don't worry I'll deal with Vala
issues with my friends at #vala).
-- Un saludo, Alberto Ruiz ------=_Part_21413_24936776.1188103202112 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi there,<br>I've been trying to figure out how to solve two use cases, and I've found a lot of similarities:<br> * Carousel album cover downloaded from internet.<br> * Pdf asynchronous presentation (quite like what I did with opt (bug #410), but asynchronously to save video memory). <br><br>In both use cases I want to save video memory as much as possible. I want to write a generic set of classes for this purposes, this is my intial draft:<br><br>--- * ---<br>== PendingTaskActor ===<br> - Used to give feedback about the loading state.<br> - It would be also neat to provide a default one, so the user of the API doesn't need to create it's own thing. I'm thinking in a generic spin or something like that.<br> - It should be possible to ask it not to waste any video memory (whenever the task is done) without destroying it.<br><br>=== Async/LazyActor ===<br> - The one that as a loaded/unloaded state and shows the PendingTaskActor until the asynchronous operation is done <br> - It should be possible to set/get the PendingTaskActor. <br> - If the actor is unloaded, then it should waste as less memory as possible.<br> - It should has a "loaded" signal and load/unload members. The load should be asynchronous. <br> - Once the content is loaded, the PendingTaskActor should not waste video memory.<br><br>=== Async/LazyContainer ===<br> - This container is responsible to tell the lazy actor whether to load its content into the memory or not. <br> - It should has a list of lazy actors, and the user should set the number of loaded actors<br> - it should have a "current actor", the main one shown (the current album, or the current pdf slide)<br> - it should be possible to say how many actors are loaded before the current actor, and after the currect actor (a shift value between 0.0 and 1.0)<br> - next/prev members are needed.<br> - It also should have one PendingTaskActor that should be used as a pattern for the childs.<br>--- * ---<br><br>This is the first time that I try to write a GObject API for generic purposes, and I don't know the clutter API very well, so I'll need some help in the design of this, any input is really appreciated, some questions: <br><br>- What should I do to make an actor not to waste any video memory <br>- Should I implement the Async/LazyActor as an interface? May I implement it as a ClutterContainer to be able to show the PendingTaskActor as well? <br>- How can I make the PendingTaskActor not to waste any video memory once the content is loaded?<br>- Should I split the AsyncActor and the LazyActor as different interfaces?<br>- Am I on crack?<br><br>I've attached a diagram showing the idea more graphically. <br><br>PS: I'm going to implement it with Vala (don't worry I'll deal with Vala issues with my friends at #vala).<br>-- <br>Un saludo,<br>Alberto Ruiz ------=_Part_21413_24936776.1188103202112-- ------=_Part_21412_23431888.1188103202112 Content-Type: image/png; name=ClutterAsyncLazy.png Content-Transfer-Encoding: base64 X-Attachment-Id: f_f5t1wa0i Content-Disposition: attachment; filename="ClutterAsyncLazy.png" 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 Nv+kh1AAAAAASUVORK5CYII= ------=_Part_21412_23431888.1188103202112-- -- To unsubscribe send a mail to clutter+unsubscribe@o-hand.comReceived on Sun, 26 Aug 2007 05:40:02 +0100
This archive was generated by hypermail 2.1.8 : Sun Aug 26 2007 - 01:00:06 EDT