[Bf-committers] Weekly Blender developer meeting minutes - December 29, 2013

Felipe Ferreira da Silva felipefsdev at gmail.com
Fri Jan 3 22:10:37 CET 2014

I'm considering make a blog about the gui toolkit, write about the
progress, post concepts and ideas, and receive opinions.

@Hi, Arnaud.

Thanks for the warning. I've never used git and github before, so I
end up forgetting
to include some files before commit. I'm compiling it on Archlinux.
You will need:
BasicUtils (another library mine, also on github) and
Cairo library (used only to create the font texture).

I will try to compile under windows later.

Here is the current main loop inside GUI.c: http://pastebin.com/dnFR7U4X
It is not the same at the github (name as "RunWindow"), this one was not
commited yet.
I'm not using sleep to force the rendering frame-rate, since it would stop
the "processing" frame-rate too. I'm just subtracting the last time by the
current time, if the value is > than 1 sec, then the rendering function is
called. It resembles the "Constant Game Speed with Maximum FPS" loop at
The SDL calls are commented and being replaced by GLFW/OpenGL calls.

So, since my last message, I switched from FBOs to use glScissor instead. I
could not ask for better results, performance is not a problem anymore:

When I was using FBOs
* Using < 400 widgets, the processing frame-rate was about 420000 cycles.
* The rendering frame-rate was at the max speed: 60 fps.
* But the processing frame-rate can decreases very fast, an > 400 widgets,
the rendering frame-rate was comprimised.

Using glScissor
* I was able to use more than 3600 widgets and keep the processing
frame-rate about 530000 cycles!!! The top frame-rate is about 850000 cycles.
* Virtually, no lost of rendering frame-rate.

About the current state of the widgets, I have:
Single-line editor (short name: Entry).
Tabset (cool feature: to scroll the tabset, you have to hold righ-click and
move the cursor).
Treeview (still WIP).
Scrollbar (need some polish).
I just made a commit, but I will commit again soon (today, or tomorrow).

I've changed some stuff that affects how to integrate the toolkit with a
script language, but I will write about it later.

Felipe Ferreira

2014/1/3 Arnaud Loonstra <arnaud at sphaero.org>

> On 01/03/2014 10:19 AM, Felipe Ferreira da Silva wrote:
> > Hewi,
> >
> > Nice work on the BUI page.
> > About the first issue "Toolbar is only accessible in the 3D View".
> Wouldn't
> > it be redundant if you had two 3D view, and two toolbars. It could be
> only
> > one toolbar for both views.
> >
> > News about TableGUI...
> > I'm rewriting parts of its code. Most of the time rewriting the OpenGL
> > calls, just to improve the performance.
> >
> > I have made a lot of changes since my last commit on the github page. I'm
> > trying an alternative to FBOs that seems to be more powerfull, faster:
> > glScissor, that do not require memory as FBOs do, and seems faster to
> > render, since it is just an bitwise operation.
> > The main loop was refactored, it runs at full speed, but the rendering is
> > just called each 16.66 miliseconds, giving me about 60 fps.
> Hey Felipe,
> Check your commits I think you forgot to add files to the repo e.g.
> GUI_notebook.c
> What platform are you on? I've been trying to compile your code on
> Debian Jessie now and then but the Makefile bugs me everytime.
> I'm wondering what methods are you using for the application loop. I'm
> seeing both SDL calls and GLFW but not where a framerate is set. Are you
> using a sleep to force the framerate?
> Rg,
> Arnaud
> --
> w: http://www.sphaero.org
> t: http://twitter.com/sphaero
> g: http://github.com/sphaero
> i: freenode: sphaero_z25
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers

- Felipe Ferreira da Silva

More information about the Bf-committers mailing list