Re: ggi2dDrawArc, ggi2dFillArc

2000-03-11 Thread Jan Kneschke

On Fri, Mar 10, 2000 at 03:18:15PM +0100, Christoph Egger wrote:
 
 
 On Wed, 8 Mar 2000 [EMAIL PROTECTED] wrote:
 
  Hi !
  
   At least, I know I will need _exactly_ these drawing functions to have
   _all_ the rendering capabilities required for the OpenAmulet GUI library.
  
  Could you give an API wishlist ? I might attack reimplementing LibGGI2D in a
  way that makes it more consistent with the other extensions and allowing
  to HW-Accelerate much of it.
  
 
 I wish to have:
 
 int ggiStrechCrossBlit(ggi_visual *src, int sx, int sy, int  sw,
int sh, ggi_visual *dst, int dx, int dy, int dw, int dh);
 
 It should does the same as ggiCrossBlit, except it also performs
 streching.
i haven't followed the discussion, but ...

Streching with or without CrossBlit comes down to the same accel on some
gfx-cards. it would save one accel if we would have such a combined command.
 
 But I think, this should go into libggi and not libggi2d...
 
 Comments?
 
 
 Christoph Egger
 E-Mail: [EMAIL PROTECTED]

thats all
  Jan

--- 
  -)=  Jan Kneschke -- Kiel -- Germany -- http://www.kneschke.de =(-



Re: Silly Ideas?

2000-03-11 Thread Marcus Sundberg

"Brian S. Julin" [EMAIL PROTECTED] writes:

 On Fri, 3 Dec 1999, Ketil Froyn wrote:
  Second, and maybe a little more realistic, I was wondering about a
  'sample' target. This could for example be an extension to file, where the
  screen is drawn to different files at the specified frequency. Would be
  excellent for grabbing screens to make animations.
 
 There is a sample "extension" in the libedemo directory.

I think he meant sample as in sampling images, not sample as in
example. ;)

Doesn't the file target provide the capability to write several
images already btw?

//Marcus
-- 
---+
Marcus Sundberg| http://www.stacken.kth.se/~mackan
 Royal Institute of Technology |   Phone: +46 707 295404
   Stockholm, Sweden   |   E-Mail: [EMAIL PROTECTED]



Re: LibGGI2D - Was: ggi2dDrawArc, ggi2dFillArc

2000-03-11 Thread Jon M. Taylor

On Sat, 11 Mar 2000, teunis wrote:

 [on reimplementation of libGGI2D]
 
 On Fri, 10 Mar 2000, Andreas Beck wrote:
 
 [clip]
  - There is an urgent need for 2D drawing functionality by several groups.
  - LibGGI2D is unmaintained and doesn't carry the usual GGI License.
  
  So please - those who need it: Get together and rewrite it. Specify all
  your needs and make a header-style proposal.
  
  A few proposals to get you started: 
  
  - ROP 256
 
 What's this mean?

Microsoft's Win32 ROP256 standard.  Look in any windows
programming book.
 
  - arbitrary length patterns for lines and background.
  - ggi2D equivalents of all LibGGI drawing primitives that obey the extended
markups above.
  - triangles, trapezoids (PM2 can accelerate aligned trapezoids) polygons, 
arbitrarily positioned ellipses and arcs
  - rounded-edge rectangles ?
 
 special case of circle draw.  Really quite simple.
 
  - spline/bezier shapes ?
 
 Okay a little more complicated.  Okay a lot.  Look how Java 2.0 handles
 this one it's not too bad...
 
  - streched (Cross-)blitting.
 
 Frequently accelerated.  BITBLT's are almost -always- accelerated though.
 
 
 I would -love- to see a pipeline proposal:
 how to handle rendering pipeline.  AKA OpenGL's specs :)

You have already seen mine, it is LibGGI3D

 I'm not saying OpenGL is the best way of looking at things... but that
 style's quite suitable to most accels + most libs.
 
 something like:
 [complex command]
   - handle clipping;  can insert "stencil" bitop to for this...;
   - [select bitop]
   - [run series of render-ops]
 
 I dunno.

The GL state-machine thing is designed the way it is because it
was designed to be embedded into hardware.  2D hardware acceleration is
not nearly as consistently designed as 3D hardware, usually it is a
crazy-quilt of different ways to do things.  The only stuff that's really
common is the 8514/A style 2D accel set.  What this all means is that,
unlike GL, we don't have a nice abstraction of a rendering pipeline to
stuff everything into.  We have to tune the nature of the pipeline code to
the hardware in order to optimize it, and having one standard type of 2D
graphics pipeline would be too restrictive.  X is a good example of why
this is bad.

 bitop - eg. AND/XOR/OR/... + bitmasks...
 renderops - simpler render commands that are usually acceled.  Like
 lines.  And points.  And rectangular fills...  And BITBLT's.

Multisource blits with generic and extensible ROPs can take care
of most of that stuff.
 
 (and the only request I have for clipping is...  Be able to handle
 stencils and rectangular clipping regions and be able to draw onto
 stencils :)

Sure.

Jon
 
---
'Cloning and the reprogramming of DNA is the first serious step in 
becoming one with God.'
- Scientist G. Richard Seed



New (next) problem...

2000-03-11 Thread John Fortin

With a new cvs extraction and build I get the following:

Making all in gg
/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
-DBUILDING_LI
BGG -I../include -I../include   -I/usr/local/include 
-I/usr/local/include  -g -
O2 -D_REENTRANT -D_THREAD_SAFE -g -Wall -c misc.c
gcc -DHAVE_CONFIG_H -I. -I. -I.. -DBUILDING_LIBGG -I../include
-I../include -I/u
sr/local/include -I/usr/local/include -g -O2 -D_REENTRANT
-D_THREAD_SAFE -g -Wal  
l -Wp,-MD,.deps/misc.pp -c  -DDLL_EXPORT -DPIC misc.c -o misc.lo
misc.c:68: #error You need to implement ggUSleep() for this system
misc.c:72: #error You need to implement ggCurTime() for this system

this comes from these lines in misc.c

#ifndef GG_USLEEP_DEFINED
#error You need to implement ggUSleep() for this system
#endif

#ifndef GG_CURTIME_DEFINED
#error You need to implement ggCurTime() for this system
#endif

GG_USLEEP_DEFINED and GG_CURTIME_DEFINED are in acconfig.h.

/* Define if ggUSleep is a #define in ggi/system.h */
#undef GG_USLEEP_DEFINED

/* Define if ggCurTime is a #define in ggi/system.h */
#undef GG_CURTIME_DEFINED

So both ggUSleep and ggCurTime are "undefined"

However, from ggi/system.h

__BEGIN_DECLS
#define ggUSleep(val) do {struct timeval tv; tv.tv_sec=(val)/100;
tv.tv_usec=(val)%100;   select(0, NULL, NULL, NULL, tv);} while(0);
__END_DECLS

__BEGIN_DECLS
#define ggCurTime(tv)   do{ SYSTEMTIME stim; GetSystemTime(stim);
(tv)-tv_sec = stim.wSecond;tv)-tv_usec = stim.wMilliseconds*1000;
}while(0)
__END_DECLS

However, even after I #defined these values it didn't work.  This is
because I can find no file which includes acconfig.h anywhere.

Any ideas??

John



Re: ggi not working over X?

2000-03-11 Thread Marcus Sundberg

Randolph Chung [EMAIL PROTECTED] writes:

 Hi all,
 
 I ran into an odd problem today. I wrote a simple ggi-based program that
 draws 1e6 boxes to the screen and time how long it takes (hey, it's my first
 ggi program :P)
 
 Strangely enough, it works locally, but not if I run it on another machine
 and do a remote X display to my box.

What happens? What OSes/machines are involved? Full GGI_DEBUG=255
log would be useful.

 Is this intentional/a known problem?

No, it works fine, and should do so with 2.0 beta2.1 as well.

 I tried running with GGI_DEBUG=255... one thing that seems odd:
 LibGGI: X: Creating shm image #0
 LibGGI: X: shmat success at 0x401e1000.
 LibGGI: X: XShmAttach failed - trying without shm
 
 does that matter?

No, it's just normal behaviour when running remote.

//Marcus
-- 
---+
Marcus Sundberg| http://www.stacken.kth.se/~mackan
 Royal Institute of Technology |   Phone: +46 707 295404
   Stockholm, Sweden   |   E-Mail: [EMAIL PROTECTED]



New 2D Spec

2000-03-11 Thread Thad Phetteplace

"Jon M. Taylor" wrote:
  
  So please - those who need it: Get together and rewrite it. Specify all
  your needs and make a header-style proposal.
 
 Will do, just gimme some time over the weekend OK?

Cool.  If Jon is willing to provide the vision on a new 2D
spec, I am willing to provide some of the grunt programming
labor.  And in case you can't guess my most important
requirement for any new 2D library... it needs a fast,
fexible blit function that can handle transparancy.  :-)

Later,

Thad



Re: gui stuff

2000-03-11 Thread Marcus Sundberg

Ian Molton [EMAIL PROTECTED] writes:

 Also, I think (if it doesnt already) libGGI2d should support all of its
 drawing types in antialiased variants as well.

Antialiased drawing is farther away from normal 2D drawing than
OpenGL is, and should definitely go into a separate library.

//Marcus
-- 
---+
Marcus Sundberg| http://www.stacken.kth.se/~mackan
 Royal Institute of Technology |   Phone: +46 707 295404
   Stockholm, Sweden   |   E-Mail: [EMAIL PROTECTED]



Re: LibGGI2D - Was: ggi2dDrawArc, ggi2dFillArc

2000-03-11 Thread Marcus Sundberg

"Jon M. Taylor" [EMAIL PROTECTED] writes:

   Sure.  I'll try to collect all the ideas from the mailing list
 archives and come up with a proposal over the weekend.  Is there still any
 interest in the LibXMI idea, or should I assume that we are trying to
 design the ideal 2D library from the ground up?

LibXMI is a rasterization library, not a drawing library.

//Marcus
-- 
---+
Marcus Sundberg| http://www.stacken.kth.se/~mackan
 Royal Institute of Technology |   Phone: +46 707 295404
   Stockholm, Sweden   |   E-Mail: [EMAIL PROTECTED]



Re: gui stuff

2000-03-11 Thread teunis

On 11 Mar 2000, Marcus Sundberg wrote:

 Ian Molton [EMAIL PROTECTED] writes:
 
  Also, I think (if it doesnt already) libGGI2d should support all of its
  drawing types in antialiased variants as well.
 
 Antialiased drawing is farther away from normal 2D drawing than
 OpenGL is, and should definitely go into a separate library.

hey - can ya -prove- this statement? :)

Antialiasing is required by a lot of font software...
... now it'd be reasonable to just use the font software's own
antialiasing (thinking freetype  family here).

I'm not actually sure that antialiasing is all that in use outside of
fonts and some imaging apps.  Comments?

G'day, eh? :)
- Teunis



Re: gui stuff

2000-03-11 Thread Stefan Seefeld

teunis wrote:

 Antialiasing is required by a lot of font software...
 ... now it'd be reasonable to just use the font software's own
 antialiasing (thinking freetype  family here).
 
 I'm not actually sure that antialiasing is all that in use outside of
 fonts and some imaging apps.  Comments?

Can you think of a font engine *not* doing the anti aliasing itself ?
Font engines will do the rasterization internally (to get the hinting
right for example) so I don't know when this can be outsourced into
an external drawing library...

Stefan
___  
  
Stefan Seefeld
Departement de Physique
Universite de Montreal
email: [EMAIL PROTECTED]

___

  ...ich hab' noch einen Koffer in Berlin...



Re: gui stuff

2000-03-11 Thread Marcus Sundberg

teunis [EMAIL PROTECTED] writes:

 On 11 Mar 2000, Marcus Sundberg wrote:
 
  Ian Molton [EMAIL PROTECTED] writes:
  
   Also, I think (if it doesnt already) libGGI2d should support all of its
   drawing types in antialiased variants as well.
  
  Antialiased drawing is farther away from normal 2D drawing than
  OpenGL is, and should definitely go into a separate library.
 
 hey - can ya -prove- this statement? :)
 
 Antialiasing is required by a lot of font software...
 ... now it'd be reasonable to just use the font software's own
 antialiasing (thinking freetype  family here).

 I'm not actually sure that antialiasing is all that in use outside of
 fonts and some imaging apps.  Comments?

Well, fonts do not belong in LibGGI2D.
And antialiased drawing doesn't belong there it is not hardware
accelerated (on most hardware, IIRC I've heard about next generation
3D-cards supporting antialiased edges), and because the software
implementations would be very different from normal 2D drawing.

//Marcus
-- 
---+
Marcus Sundberg| http://www.stacken.kth.se/~mackan
 Royal Institute of Technology |   Phone: +46 707 295404
   Stockholm, Sweden   |   E-Mail: [EMAIL PROTECTED]



Re: DLLEXT problems

2000-03-11 Thread Marcus Sundberg

John Fortin [EMAIL PROTECTED] writes:

 It gives i386-mingw32 for ${target}
 
 configure --host=i386-mingw32 --build=i386-mingw32 --target=i386-mingw32
 --without-x \
 --enable-directx --prefix=e:/usr/local --with-gii=/usr/local \
 --with-extra-libs=/usr/local/lib
 --with-extra-includes=/usr/local/include
 
 With the above command I get the following...
 
 checking host system type... i386-pc-mingw32
 checking build system type... i386-pc-mingw32
 
 Why isn't ${target} converted to i386-pc-mingw32??
 
 I changed the dllext.m4 macro to test for *-mingw* | *-cygwin* and it
 works.  But I don't want to commit it until I understand the above
 question.

It was really a mistake on my side - please change ${target} to
${host} and it should work. target is only for things like binutils,
gcc and gdb.

I'll commit this as soon as CVS is back up.

//Marcus
-- 
---+
Marcus Sundberg| http://www.stacken.kth.se/~mackan
 Royal Institute of Technology |   Phone: +46 707 295404
   Stockholm, Sweden   |   E-Mail: [EMAIL PROTECTED]



Re: DLLEXT problems

2000-03-11 Thread John Fortin



Marcus Sundberg wrote:
 
 John Fortin [EMAIL PROTECTED] writes:
 
  It gives i386-mingw32 for ${target}
 
  configure --host=i386-mingw32 --build=i386-mingw32 --target=i386-mingw32
  --without-x \
  --enable-directx --prefix=e:/usr/local --with-gii=/usr/local \
  --with-extra-libs=/usr/local/lib
  --with-extra-includes=/usr/local/include
 
  With the above command I get the following...
 
  checking host system type... i386-pc-mingw32
  checking build system type... i386-pc-mingw32
 
  Why isn't ${target} converted to i386-pc-mingw32??
 
  I changed the dllext.m4 macro to test for *-mingw* | *-cygwin* and it
  works.  But I don't want to commit it until I understand the above
  question.
 
 It was really a mistake on my side - please change ${target} to
 ${host} and it should work. target is only for things like binutils,
 gcc and gdb.
 
 I'll commit this as soon as CVS is back up.
 


OK, thanks,

John



Re: DLLEXT problems

2000-03-11 Thread Andreas Beck

 configure --host=i386-mingw32 --build=i386-mingw32 --target=i386-mingw32
 ...
 With the above command I get the following...
 
 checking host system type... i386-pc-mingw32
 checking build system type... i386-pc-mingw32
 
 Why isn't ${target} converted to i386-pc-mingw32??

I assume because you explicitly give it on the commandline which probably
takes precedence over any autoprobed value.

CU, ANdy

-- 
= Andreas Beck|  Email :  [EMAIL PROTECTED] =



Re: LibGGI2D - Was: ggi2dDrawArc, ggi2dFillArc

2000-03-11 Thread James Simmons


  - triangles, 
 
   All flat, no perspective stuff?
 
  trapezoids (PM2 can accelerate aligned trapezoids) 
 
   So can Trio64 and up.
 
polygons,
 
   Should this be different from triangles?  We'll have to decompose
 the polygons into triangles or triangle fans in many cases anyway, in
 order to accelerate them efficiently with some hardware. DrawPolygon(vis,
 triangle, ...) is just a degenerate case of this.

Same for triangle strips. ATI 128 cards support these. 

  - spline/bezier shapes ?
 
   What hardware accelerates these?

Infinite Reality engines. I think SGI visual workstations did as well.
Can't remember. 



Re: DLLEXT problems

2000-03-11 Thread John Fortin

Andreas Beck wrote:
 
  configure --host=i386-mingw32 --build=i386-mingw32 --target=i386-mingw32
  ...
  With the above command I get the following...
 
  checking host system type... i386-pc-mingw32
  checking build system type... i386-pc-mingw32
 
  Why isn't ${target} converted to i386-pc-mingw32??
 
 I assume because you explicitly give it on the commandline which probably
 takes precedence over any autoprobed value.
 

That is what I initially thought.  However, host and build got converted
from i386-mingw32 to i386-pc-mingw32
and I gave them on the command line, also.

Seems inconsistent to me.

John