oogl-import / ardesia

Automatically exported from code.google.com/p/ardesia
0 stars 0 forks source link

The highlighter doesn't work under Windows #21

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Open Ardesia under Windows
2. Select the highlighter
3. Try to write

What is the expected output? What do you see instead?

I expect to use the higjlighter, a strange modified color appear instead of a 
semi-opaque color.

Original issue reported on code.google.com by al...@paranoici.org on 9 Jan 2011 at 3:08

GoogleCodeExporter commented 8 years ago
The problem is that the gdk_screen_get_rgba_colormap doesn't work correctly 
under Windows and then Ardesia is working without an alpha channell.
We must investigate furthermore if exist a way to work with RGBA color with 
Cairo on windows.
In the current implementation on windows in order to have a transparent window 
I use
a layered window using the black as the "transparent color" but the colormap is 
rgb.

Original comment by al...@paranoici.org on 9 Jan 2011 at 3:11

GoogleCodeExporter commented 8 years ago
Ypu can read an explanation about 
this problem on http://cairographics.org/samples/dotnet-gdi-rendering/
and a sort of solution also

Original comment by al...@paranoici.org on 10 Jan 2011 at 3:47

GoogleCodeExporter commented 8 years ago
The example on http://cairographics.org/samples/dotnet-gdi-rendering/
is written in C# and works using an other image surface. This is out of our 
scope because we want have a surface connected to the gtkwindow (or the HDC 
associated)

Original comment by al...@paranoici.org on 11 Jan 2011 at 4:40

GoogleCodeExporter commented 8 years ago
I have attempt to create a surface with cairo_win32_surface_create_with_ddb
in this way:

cairo_win32_surface_create_with_ddb(hdc, CAIRO_FORMAT_ARGB32, 
gdk_screen_width(), gdk_screen_height());

But I have a not paintable white window as result. It doesn't work  

Original comment by al...@paranoici.org on 11 Jan 2011 at 5:00

GoogleCodeExporter commented 8 years ago
The goal is have a cairo surface and cairo context attached to the GdkWindow as 
done 
with this code (copied by annotation_window_callback.c):

--------------------------------------------------------------------------------
-----
/* The hdc has depth 32 and the technology is DT_RASDISPLAY */
      HDC hdc = GetDC(GDK_WINDOW_HWND(data->annotation_window->window));
      /* 
       * @TODO Use an HDC that support the ARGB32 format to support the alpha channel and the highlighter
       * In the documentation is written that the now the resulting surface is in RGB24 format
       * 
       */
      cairo_surface_t* surface = cairo_win32_surface_create(hdc);

      data->annotation_cairo_context = cairo_create(surface);

--------------------------------------------------------------------------------
---

but using ARGB32

Original comment by al...@paranoici.org on 11 Jan 2011 at 5:33

GoogleCodeExporter commented 8 years ago
If will achieve the goal to have a paintable surface with alpha could be 
possible deny the layered window usage to have the transparent window.

Original comment by al...@paranoici.org on 11 Jan 2011 at 5:35

GoogleCodeExporter commented 8 years ago
Can Help use UpdateLayeredWindow with a blend function?

Original comment by al...@paranoici.org on 3 Feb 2011 at 6:19

GoogleCodeExporter commented 8 years ago
I have tried to use the UpdateLayeredWindow with a blend function but I have 
the same misbehaviour

Original comment by al...@paranoici.org on 9 Mar 2011 at 1:09

GoogleCodeExporter commented 8 years ago
http://comments.gmane.org/gmane.comp.lib.cairo/21593

Seems that the not RGBA colormap is a gdi limit that will be fixed by the GTK3

Original comment by al...@paranoici.org on 22 Jun 2011 at 12:09

GoogleCodeExporter commented 8 years ago

Original comment by al...@paranoici.org on 2 Aug 2011 at 1:51

GoogleCodeExporter commented 8 years ago

Original comment by al...@paranoici.org on 2 Aug 2011 at 1:56

GoogleCodeExporter commented 8 years ago
The Gtk 3 is out; the bug could be fixed porting the code from the gtk 2 to the 
gtk 3

Original comment by al...@paranoici.org on 9 Oct 2011 at 11:52

GoogleCodeExporter commented 8 years ago
Ardesia on subversion repository has been ported on gtk3.
Are there some volunters that want to try to build Ardesia on WIndows and 
update the issue status.

Original comment by pilolli....@gmail.com on 27 Aug 2012 at 7:21

GoogleCodeExporter commented 8 years ago
Ardesia is ported on GTK3 that this issue has become invalid.

Original comment by al...@paranoici.org on 17 Sep 2012 at 5:06