[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gnash-commit] gnash ChangeLog backend/render_handler.h backen...
From: |
Bastiaan Jacques |
Subject: |
Re: [Gnash-commit] gnash ChangeLog backend/render_handler.h backen... |
Date: |
Tue, 24 Oct 2006 14:45:43 +0200 |
On Mon, 2006-10-23 at 20:03 +0200, Udo Giacomozzi wrote:
> Hello Bastiaan,
>
> Monday, October 23, 2006, 12:53:28 AM, you wrote:
> BJ> Log message:
> BJ> * backend/render_handler.h: Add get_invalidated_region().
> BJ> * backend/render_handler_agg.cpp: Implement
> get_invalidated_region().
> BJ> * gui/{gtk.cpp, gtk_glue_agg.cpp, gtk_glue_agg.h,
> gtksup.h, gui.cpp,
> BJ> gui.h}: Remove duplicate implementation of
> set_invalidated_region();
> BJ> instead, call get_invalidate_region() from the relevant
> glue. Call
> BJ> render_handler::set_invalidated_region() directly instead
> of the Gui
> BJ> implementation.
> BJ> * gui/sdl_agg_glue{.cpp, .h}: Implement region clipping
> based
> BJ> rendering.
> Also, my
> implementation does not require that the renderer to do perfect
> clipping.
I don't understand how a Gui could do a better job at clipping than the
renderer. Nor do I understand how my commit changes the situation.
> In the case of AGG, it's even a bad idea because clipping
> happens at sub-pixel level and this may lead to unexpected results
> (anti-aliasing pixels summing up and such) along the clipping
> rectangle.
In this commit, I have moved the Gui-specific parts of
set_invalidated_region() into the relevant glues. So that accounts for
the anti-aliasing correction I think you are referring to.
On a sidenote, I have moved the clipping related Gui code into the
relevant glues, because interfacing with the renderer is a glue's job.
[moved]
> The whole GUI / renderer combo must support invalidated regions. When
> the GUI does not support invalidated regions then it may be bad to let
> the renderer do clipping (which might slow down rendering).
> When only the clipped region of the AGG buffer is blitted to the
> screen (as with GTK-AGG), this normally is not a problem. But if the
> complete buffer is blitted (any future GUI), then the result can be
> different (which should never happen).
So that sounds like we should have something like this in
Gui::display():
if (this->glueImplementsClipping()) {
_renderer->set_invalidated_region(changed_bounds);
}
Bastiaan
- [Gnash-commit] gnash ChangeLog backend/render_handler.h backen..., Markus Gothe, 2006/10/08
- [Gnash-commit] gnash ChangeLog backend/render_handler.h backen..., Markus Gothe, 2006/10/08
- [Gnash-commit] gnash ChangeLog backend/render_handler.h backen..., Sandro Santilli, 2006/10/09
- [Gnash-commit] gnash ChangeLog backend/render_handler.h backen..., Sandro Santilli, 2006/10/13
- [Gnash-commit] gnash ChangeLog backend/render_handler.h backen..., Udo Giacomozzi, 2006/10/16
- [Gnash-commit] gnash ChangeLog backend/render_handler.h backen..., Bastiaan Jacques, 2006/10/22
- Re: [Gnash-commit] gnash ChangeLog backend/render_handler.h backen..., Udo Giacomozzi, 2006/10/23
- Re: [Gnash-commit] gnash ChangeLog backend/render_handler.h backen...,
Bastiaan Jacques <=
- Re[2]: [Gnash-commit] gnash ChangeLog backend/render_handler.h backen..., Udo Giacomozzi, 2006/10/24
- Re: Re[2]: [Gnash-commit] gnash ChangeLog backend/render_handler.h backen..., Bastiaan Jacques, 2006/10/25
- Re[4]: [Gnash-commit] gnash ChangeLog backend/render_handler.h backen..., Udo Giacomozzi, 2006/10/25
- Re: [Gnash-commit] gnash ChangeLog backend/render_handler.h backen..., strk, 2006/10/26
- Re[2]: [Gnash-commit] gnash ChangeLog backend/render_handler.h backen..., Udo Giacomozzi, 2006/10/26
- Re: [Gnash-commit] gnash ChangeLog backend/render_handler.h backen..., Hannes Mayr, 2006/10/26
[Gnash-commit] gnash ChangeLog backend/render_handler.h backen..., Udo Giacomozzi, 2006/10/26