Re: [Qemu-devel] cocoa.m using openGL

2005-05-29 Thread Pierre d'Herbemont
On 28 mai 05, at 20:39, Mike Kronenberg wrote:Pierre d'Herbemont wrote:It doesn't work on my iMac DV G3 400. I know that its ATI Rage 128 is very limited, but I think that we'll had to keep both version...Did You get an error-message so we could include a autoswitch?Nop... The main window's buffer seems to point to a wrong memory address. I have seen, this bug before when playing with OpenGL and texture on this Macine. Screenshot here:http://stegefin.free.fr/q-ogl.pngPierre.___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] cocoa.m using openGL

2005-05-28 Thread Mike Kronenberg

Pierre d'Herbemont wrote:



On 24 mai 05, at 17:11, Mike Kronenberg wrote:


Testbuild and diff are on
http://www.kberg.ch/cocoaqemu



It doesn't work on my iMac DV G3 400. I know that its ATI Rage 128 is 
very limited, but I think that we'll had to keep both version...


Did You get an error-message so we could include a autoswitch?



The PNG preview works but not the main screen.

I'll be able to debug a bit more in the weekend.

Pierre.




___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel
 


Mike


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] cocoa.m using openGL

2005-05-27 Thread Pierre d'Herbemont
On 24 mai 05, at 17:11, Mike Kronenberg wrote:Testbuild and diff are onhttp://www.kberg.ch/cocoaqemuIt doesn't work on my iMac DV G3 400. I know that its ATI Rage 128 is very limited, but I think that we'll had to keep both version...The PNG preview works but not the main screen.I'll be able to debug a bit more in the weekend.Pierre.___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] cocoa.m using openGL

2005-05-26 Thread Pierre d'Herbemont
Mike!Le 24 mai 05 à 17:11, Mike Kronenberg a écrit :[..]=> openGL is 3.5% faster on my systemImpressive ;)plus- it solves some issues i had with hiding/showing the toolbar (damaging the qd_view)- it could accelerate the generation of livethumbnails i am usingTestbuild and diff are onhttp://www.kberg.ch/cocoaqemuAt this point I'm asking, whether my patch should/can be included into the CVS, what changes I should make, or how to continue...Send your patch to Fabrice (and the list)! I can't really test it right now, but after a really quick look, it looks clean enough for me.And I don't think you should wait any longer. I think it is better to work directly on the CVS, with a patch per bug/features scheme.bye,Pierre.___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] cocoa.m using openGL

2005-05-26 Thread Pierre d'Herbemont

Hi Peter,

That is really great!

To send your work:
1) download the cvs repository, see:
http://savannah.nongnu.org/cvs/?group=qemu
2) send your diff:
# cd /path/to/qemu
# cvs diff -u cocoa.m > cocoapatch.diff.txt

If you think your patch is clean enough, send it to Fabrice (and the  
list) so that it can be merged in qemu's repository.


It seems that cocoa.m is under heavy work, which is good :)

Pierre.

Le 22 mai 05 à 15:00, Peter Stewart a écrit :


Hello to all,

esp. Pierre d'Herbemont,

I have changed cocoa.m (0.7.0) to use openGL with very fast  
texturing. I removed the use of QuickDraw. The DisplayState data is  
now DMA'd to the graphics card instead of copied by the CPU. This  
uses apple's texture range extensions. The change means that the  
transfer of "display memory" incurs no CPU overhead. I also put in  
a bit more mouse stuff, and made some other fixes. I can't work out  
how to get the Window to get focus once it loses it, which is  
really a pain.


I Shark'd it to make sure there wasn't any overhead from the  
texturing. I tested with Knoppix and FreeDOS.


I am not sure if this is of interest to people, I just had a lazy  
weekend. I would like to give the code to the qemu project, but  
don't really know how to.



thanks,
peter.



___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel





___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] cocoa.m using openGL

2005-05-24 Thread Mike Kronenberg

Hello Peter and Pierre

I have woven the patch into my patch and run some basic but in other 
times often used benchmarks with doom:


i unpacked freedos and installed doom from
http://www.kberg.ch/cocoaqemu/files/freedosdoom.img.zip

then i started doom with
doom -timedemo demo3

(reboot between the runs)

realticks with QD
2542
2544
2543
2543
2545
Average: 2543.4 => 29.3662 fps

realticks with openGL
2476
2466
2447
2451
2454
Average: 2458.8 => 30.3865 fps

To get fps from these Number you have to 35*2134/realticks

=> openGL is 3.5% faster on my system

plus
- it solves some issues i had with hiding/showing the toolbar (damaging 
the qd_view)

- it could accelerate the generation of livethumbnails i am using

Testbuild and diff are on
http://www.kberg.ch/cocoaqemu

At this point I'm asking, whether my patch should/can be included into 
the CVS, what changes I should make, or how to continue...


Mike



___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] cocoa.m using openGL

2005-05-23 Thread Mike Kronenberg

Peter Stewart wrote:


Hi,

Sorry for using up mail space, but here is the cocoa.m file.


enjoy,
peter.


Thanks amillion!

I will try it out tomorrow.

Hope I too can produce a Patch soon, so there is not to much 
unneccessary work mergin bits'n'peaces :)


Mike


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] cocoa.m using openGL

2005-05-23 Thread Peter Stewart

Hi,

Just added Mike's keyboard fixes, so I could run doom.

Built and installed doom, it runs pretty well. It actually runs better 
than I expected, pretty cool.


Thanks for the .img.

peter.



___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] cocoa.m using openGL

2005-05-23 Thread Peter Stewart

Hi,

Sorry for using up mail space, but here is the cocoa.m file.


enjoy,
peter.


/*
 * QEMU Cocoa display driver
 *
 * Copyright (c) 2005 Pierre d'Herbemont
 *many code/inspiration from SDL 1.2 code (LGPL)
 *
 * Permission is hereby granted, free of charge, to any person  
obtaining a copy
 * of this software and associated documentation files (the  
"Software"), to deal
 * in the Software without restriction, including without limitation  
the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or  
sell

 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be  
included in

 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,  
EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF  
MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT  
SHALL
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR  
OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,  
ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  
DEALINGS IN

 * THE SOFTWARE.
 */
/*
Todo :x  miniaturize window
  x  center the window
  -  save window position
  -  handle keyboard event
  -  handle mouse event
  -  non 32 bpp support
  -  full screen
  -  mouse focus
  x  simple graphical prompt to demo
  -  better graphical prompt
*/

#import 

#include 
#include 

#include "vl.h"

static NSWindow *window = NULL;
static NSOpenGLView *ogl_view = NULL;

#define SCREEN_BPP 32

int gArgc;
char **gArgv;
DisplayState current_ds;

GLint screen_tex = 0;
GLuint display_list_tex = 0;

/* main defined in qemu/vl.c */
int qemu_main(int argc, char **argv);

/* To deal with miniaturization */
@interface QemuWindow : NSWindow
{ }
@end


/*
 --
Qemu Video Driver
 --
*/


/*
 --
cocoa_update
 --
*/
static void cocoa_update(DisplayState *ds, int x, int y, int w, int h)
{
//printf("updating x=%d y=%d w=%d h=%d\n", x, y, w, h);

// Make this context current
[[ogl_view openGLContext] makeCurrentContext];

// Bind, update and draw new image
glBindTexture(GL_TEXTURE_RECTANGLE_EXT, screen_tex);

// glTexSubImage2D is faster when not using a texture range
glTexImage2D(GL_TEXTURE_RECTANGLE_EXT, 0, GL_RGBA,  
(GLint)ds->width, (GLint)ds->height, 0, GL_BGRA,  
GL_UNSIGNED_INT_8_8_8_8_REV, ds->data);


// Use the compiled display list
glCallList(display_list_tex);

// Swap buffer to screen
[[ogl_view openGLContext] flushBuffer];

}

/*
 --
cocoa_resize
 --
*/
static void cocoa_resize(DisplayState *ds, int w, int h)
{

NSRect contentRect;

// printf("resizing to %d %d\n", w, h);

contentRect = NSMakeRect (0, 0, w, h);

[window setContentSize:contentRect.size];
[window update];

[[ogl_view openGLContext] makeCurrentContext];
[[ogl_view openGLContext] update];

glViewport(0, 0, (int) contentRect.size.width, (int)  
contentRect.size.height);


glMatrixMode(GL_PROJECTION);
glLoadIdentity();

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

// This is used as a init'd flag as well...
if(screen_tex != 0) {
glDeleteTextures(1, &screen_tex);
glDeleteLists(display_list_tex, 1);
}

screen_tex = 1;

if(ds->data != NULL) free(ds->data);
ds->data = (GLubyte *) malloc(w * h * (SCREEN_BPP >> 3));
assert(ds->data != NULL);
ds->linesize = w * (SCREEN_BPP >> 3);
ds->depth = SCREEN_BPP;
ds->width = w;
ds->height = h;

// Setup some basic OpenGL stuff as from Apple
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);

glEnable(GL_TEXTURE_RECTANGLE_EXT);
glBindTexture(GL_TEXTURE_RECTANGLE_EXT, screen_tex);

glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE_EXT,  w * h *  
(SCREEN_BPP >> 3), ds->data);


// Use CACHED for VRAM+reused tex  Use SHARED for AGP+used once  
tex

// Note the texture is always changing so use SHARED
glTexParameteri(GL_TEXTURE_RECTANGLE_EXT,  
GL_TEXTURE_STORAGE_HINT_APPLE , GL_STORAGE_SHARED_APPLE);

glPixelS

Re: [Qemu-devel] cocoa.m using openGL

2005-05-23 Thread Peter Stewart

Hi,

Sorry, kind of new at this...

Here is the diff -u version of cocoa.m, I guess you got the  
Makefile.target fix :-)



diff -u cocoa.m.orig cocoa.m > cocoa.m.diff

enjoy,
peter.


--- cocoa.m.origSat May 21 17:19:45 2005
+++ cocoa.m Mon May 23 19:24:00 2005
@@ -37,16 +37,23 @@

 #import 

+#include 
+#include 
+
 #include "vl.h"

-NSWindow *window = NULL;
-NSQuickDrawView *qd_view = NULL;
+static NSWindow *window = NULL;
+static NSOpenGLView *ogl_view = NULL;

+#define SCREEN_BPP 32

 int gArgc;
 char **gArgv;
 DisplayState current_ds;

+GLint screen_tex = 0;
+GLuint display_list_tex = 0;
+
 /* main defined in qemu/vl.c */
 int qemu_main(int argc, char **argv);

@@ -62,6 +69,7 @@
  --
 */

+
 /*
  --
 cocoa_update
@@ -70,22 +78,22 @@
 static void cocoa_update(DisplayState *ds, int x, int y, int w, int h)
 {
 //printf("updating x=%d y=%d w=%d h=%d\n", x, y, w, h);
+
+   // Make this context current
+   [[ogl_view openGLContext] makeCurrentContext];
+
+   // Bind, update and draw new image
+   glBindTexture(GL_TEXTURE_RECTANGLE_EXT, screen_tex);
+
+   // glTexSubImage2D is faster when not using a texture range
+   glTexImage2D(GL_TEXTURE_RECTANGLE_EXT, 0, GL_RGBA,  
(GLint)ds->width, (GLint)ds->height, 0, GL_BGRA,  
GL_UNSIGNED_INT_8_8_8_8_REV, ds->data);

+
+   // Use the compiled display list
+   glCallList(display_list_tex);
+
+   // Swap buffer to screen
+   [[ogl_view openGLContext] flushBuffer];

-/* Use QDFlushPortBuffer() to flush content to display */
-RgnHandle dirty = NewRgn ();
-RgnHandle temp  = NewRgn ();
-
-SetEmptyRgn (dirty);
-
-/* Build the region of dirty rectangles */
-MacSetRectRgn (temp, x, y,
-x + w, y + h);
-MacUnionRgn (dirty, temp, dirty);
-
-/* Flush the dirty region */
-QDFlushPortBuffer ( [ qd_view  qdPort ], dirty );
-DisposeRgn (dirty);
-DisposeRgn (temp);
 }

 /*
@@ -95,74 +103,96 @@
 */
 static void cocoa_resize(DisplayState *ds, int w, int h)
 {
-const int device_bpp = 32;
-static void *screen_pixels;
-static int  screen_pitch;
+
 NSRect contentRect;
+
+// printf("resizing to %d %d\n", w, h);

-//printf("resizing to %d %d\n", w, h);
-
-contentRect = NSMakeRect (0, 0, w, h);
-if(window)
-{
-[window close];
-[window release];
-}
-window = [ [ QemuWindow alloc ] initWithContentRect:contentRect
-   
styleMask: 
NSTitledWindowMask|NSMiniaturizableWindowMask|NSClosableWindowMask
-  backing:NSBackingStoreBuffered  
defer:NO];

-if(!window)
-{
-fprintf(stderr, "(cocoa) can't create window\n");
-exit(1);
-}
-
-if(qd_view)
-[qd_view release];
-
-qd_view = [ [ NSQuickDrawView alloc ] initWithFrame:contentRect ];
-
-if(!qd_view)
-{
- fprintf(stderr, "(cocoa) can't create qd_view\n");
-exit(1);
-}
-
-[ window setAcceptsMouseMovedEvents:YES ];
-[ window setTitle:@"Qemu" ];
-[ window setReleasedWhenClosed:NO ];
-
-/* Set screen to black */
-[ window setBackgroundColor: [NSColor blackColor] ];
-
-/* set window position */
-[ window center ];
-
-[ qd_view setAutoresizingMask: NSViewWidthSizable |  
NSViewHeightSizable ];

-[ [ window contentView ] addSubview:qd_view ];
-[ qd_view release ];
-[ window makeKeyAndOrderFront:nil ];
-
-/* Careful here, the window seems to have to be onscreen to do  
that */

-LockPortBits ( [ qd_view qdPort ] );
-screen_pixels = GetPixBaseAddr ( GetPortPixMap ( [ qd_view qdPort  
] ) );
-screen_pitch  = GetPixRowBytes ( GetPortPixMap ( [ qd_view qdPort  
] ) );

-UnlockPortBits ( [ qd_view qdPort ] );
-{
-int vOffset = [ window frame ].size.height -
-[ qd_view frame ].size.height - [ qd_view frame  
].origin.y;

-
-int hOffset = [ qd_view frame ].origin.x;
-
-screen_pixels += (vOffset * screen_pitch) + hOffset *  
(device_bpp/8);

-}
-ds->data = screen_pixels;
-ds->linesize = screen_pitch;
-ds->depth = device_bpp;
+contentRect = NSMakeRect (0, 0, w, h);
+
+   [window setContentSize:contentRect.size];
+   [window update];
+
+   [[ogl_view openGLContext] makeCurrentContext];
+   [[ogl_view openGLContext] update];
+
+glViewport(0, 0, (int) contentRect.size.width, (int)  
contentRect.size.height);

+
+   glMatrixMode(GL_PROJECTION);
+glLoadIdentity();
+
+   glMatrixMode(GL_MODELVIEW);
+glLoadIdentity();
+
+   // This is used as a init'd flag as well...
+   if(screen_tex != 0) {
+   glDeleteTextures(1, &screen_tex);
+   glDeleteLists(display_list_tex, 1);
+   }
+
+   screen_tex = 1;
+
+   if(ds->data != NULL) free(ds->data);

Re: [Qemu-devel] cocoa.m using openGL

2005-05-23 Thread Hetz Ben Hamo
Could you use diff -u please? that surely could help.

Thanks,
Hetz


On 5/23/05, Mike Kronenberg <[EMAIL PROTECTED]> wrote:
> Peter Stewart wrote:
> 
> > Hi,
> >
> > It looks faster than the original, but I don't have a benchmark, is
> > there one?
> > I would really like a bootable image with Doom 1 on it.
> 
> http://www.kberg.ch/cocoaqemu/files/freedosdoom.img.zip
> have fun
> 
> > Here is the diff for cocoa.m ( diff cocoa.m.orig cocoa.m ) (from
> > 0.7.0  dl):
> 
> 
> Somehow, I cant patch it to cocoa.m
> could you post cocoa.m as a attachement, since i have not alot in common
> with cocoa.m animore :)
> 
> Mike
> 
> 
> ___
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
>


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] cocoa.m using openGL

2005-05-23 Thread Mike Kronenberg

Peter Stewart wrote:


Hi,

It looks faster than the original, but I don't have a benchmark, is  
there one?

I would really like a bootable image with Doom 1 on it.


http://www.kberg.ch/cocoaqemu/files/freedosdoom.img.zip
have fun

Here is the diff for cocoa.m ( diff cocoa.m.orig cocoa.m ) (from 
0.7.0  dl): 



Somehow, I cant patch it to cocoa.m
could you post cocoa.m as a attachement, since i have not alot in common 
with cocoa.m animore :)


Mike


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] cocoa.m using openGL

2005-05-23 Thread Peter Stewart

Hi,

It looks faster than the original, but I don't have a benchmark, is  
there one?

I would really like a bootable image with Doom 1 on it.

I also added to Makefile.target, the "-framework OpenGL" bit.

ifdef CONFIG_COCOA
VL_OBJS+=cocoa.o
COCOA_LIBS=-F/System/Library/Frameworks -framework Cocoa -framework  
OpenGL

endif



enjoy,
peter.


Here is the diff for cocoa.m ( diff cocoa.m.orig cocoa.m ) (from 0.7.0  
dl):


> #include 
> #include 
>
42,43c45,46
< NSWindow *window = NULL;
< NSQuickDrawView *qd_view = NULL;
---
> static NSWindow *window = NULL;
> static NSOpenGLView *ogl_view = NULL;
44a48
> #define SCREEN_BPP 32
49a54,56
> GLint screen_tex = 0;
> GLuint display_list_tex = 0;
>
64a72
>
72a81,95
>
>   // Make this context current
>   [[ogl_view openGLContext] makeCurrentContext];
>
>   // Bind, update and draw new image
>   glBindTexture(GL_TEXTURE_RECTANGLE_EXT, screen_tex);
>
>   // glTexSubImage2D is faster when not using a texture range
>   glTexImage2D(GL_TEXTURE_RECTANGLE_EXT, 0, GL_RGBA,  
(GLint)ds->width, (GLint)ds->height, 0, GL_BGRA,  
GL_UNSIGNED_INT_8_8_8_8_REV, ds->data);

>
>   // Use the compiled display list
>   glCallList(display_list_tex);
>
>   // Swap buffer to screen
>   [[ogl_view openGLContext] flushBuffer];
74,88d96
< /* Use QDFlushPortBuffer() to flush content to display */
< RgnHandle dirty = NewRgn ();
< RgnHandle temp  = NewRgn ();
<
< SetEmptyRgn (dirty);
<
< /* Build the region of dirty rectangles */
< MacSetRectRgn (temp, x, y,
< x + w, y + h);
< MacUnionRgn (dirty, temp, dirty);
<
< /* Flush the dirty region */
< QDFlushPortBuffer ( [ qd_view  qdPort ], dirty );
< DisposeRgn (dirty);
< DisposeRgn (temp);
98,100c106
< const int device_bpp = 32;
< static void *screen_pixels;
< static int  screen_pitch;
---
>
101a108,109
>
> // printf("resizing to %d %d\n", w, h);
103,161c111,139
< //printf("resizing to %d %d\n", w, h);
<
< contentRect = NSMakeRect (0, 0, w, h);
< if(window)
< {
< [window close];
< [window release];
< }
< window = [ [ QemuWindow alloc ] initWithContentRect:contentRect
<
styleMask: 
NSTitledWindowMask|NSMiniaturizableWindowMask|NSClosableWindowMask
<   backing:NSBackingStoreBuffered  
defer:NO];

< if(!window)
< {
< fprintf(stderr, "(cocoa) can't create window\n");
< exit(1);
< }
<
< if(qd_view)
< [qd_view release];
<
< qd_view = [ [ NSQuickDrawView alloc ] initWithFrame:contentRect ];
<
< if(!qd_view)
< {
<  fprintf(stderr, "(cocoa) can't create qd_view\n");
< exit(1);
< }
<
< [ window setAcceptsMouseMovedEvents:YES ];
< [ window setTitle:@"Qemu" ];
< [ window setReleasedWhenClosed:NO ];
<
< /* Set screen to black */
< [ window setBackgroundColor: [NSColor blackColor] ];
<
< /* set window position */
< [ window center ];
<
< [ qd_view setAutoresizingMask: NSViewWidthSizable |  
NSViewHeightSizable ];

< [ [ window contentView ] addSubview:qd_view ];
< [ qd_view release ];
< [ window makeKeyAndOrderFront:nil ];
<
< /* Careful here, the window seems to have to be onscreen to do  
that */

< LockPortBits ( [ qd_view qdPort ] );
< screen_pixels = GetPixBaseAddr ( GetPortPixMap ( [ qd_view qdPort  
] ) );
< screen_pitch  = GetPixRowBytes ( GetPortPixMap ( [ qd_view qdPort  
] ) );

< UnlockPortBits ( [ qd_view qdPort ] );
< {
< int vOffset = [ window frame ].size.height -
< [ qd_view frame ].size.height - [ qd_view frame  
].origin.y;

<
< int hOffset = [ qd_view frame ].origin.x;
<
< screen_pixels += (vOffset * screen_pitch) + hOffset *  
(device_bpp/8);

< }
< ds->data = screen_pixels;
< ds->linesize = screen_pitch;
< ds->depth = device_bpp;
---
> contentRect = NSMakeRect (0, 0, w, h);
>
>   [window setContentSize:contentRect.size];
>   [window update];
>
>   [[ogl_view openGLContext] makeCurrentContext];
>   [[ogl_view openGLContext] update];
>
> glViewport(0, 0, (int) contentRect.size.width, (int)  
contentRect.size.height);

>
>   glMatrixMode(GL_PROJECTION);
> glLoadIdentity();
>
>   glMatrixMode(GL_MODELVIEW);
> glLoadIdentity();
>
>   // This is used as a init'd flag as well...
>   if(screen_tex != 0) {
>   glDeleteTextures(1, &screen_tex);
>   glDeleteLists(display_list_tex, 1);
>   }
>
>   screen_tex = 1;
>
>   if(ds->data != NULL) free(ds->data);
>   ds->data = (GLubyte *) malloc(w * h * (SCREEN_BPP >> 3));
>   assert(ds->data != NULL);
>   ds->linesize = w * (SCREEN_BPP >> 3);
> ds->depth = SCREEN_BPP;
164,165c142,195
<
< current_ds = *ds;
---
>
>   // Setup some basic OpenGL stuff as from Apple
>  

Re: [Qemu-devel] cocoa.m using openGL

2005-05-23 Thread Mike Kronenberg

Peter Stewart wrote:


Hi Hetz,

I will do a comparison, and a diff, and add some more comments.


Great, I can't wait to merge and test it :)



I have a 800Mhz ibook 640M. When I ran Knoppix, and glxgears I got 
7fps on OpenGL profiler and 5fps reported by glxgears. OpenGL profiler 
reported that a maximum of 5% of the time was being spent in OpenGL. 
On average about 2% of the time was spent in OpenGL. The peak fps was 
27 fps, this happens during the text based startup of Knoppix (the 
green bar with the text spinner). I would like to run doom2 shareware 
dos based to see what fps I get, should be okay I think, but don't 
know how to get a bootable image with the shareware software on it.


Doom2 was never released as Shareware, only Doom1. If You need a 
bootable Image, I can prepare You one of Doom1.




thanks,
peter.


Mike


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] cocoa.m using openGL

2005-05-23 Thread Peter Stewart

Hi Hetz,

I will do a comparison, and a diff, and add some more comments.

I have a 800Mhz ibook 640M. When I ran Knoppix, and glxgears I got 7fps 
on OpenGL profiler and 5fps reported by glxgears. OpenGL profiler 
reported that a maximum of 5% of the time was being spent in OpenGL. On 
average about 2% of the time was spent in OpenGL. The peak fps was 27 
fps, this happens during the text based startup of Knoppix (the green 
bar with the text spinner). I would like to run doom2 shareware dos 
based to see what fps I get, should be okay I think, but don't know how 
to get a bootable image with the shareware software on it.



thanks,
peter.




___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] cocoa.m using openGL

2005-05-23 Thread Mike Kronenberg

Peter Stewart wrote:


Hello to all,

esp. Pierre d'Herbemont,

I have changed cocoa.m (0.7.0) to use openGL with very fast texturing. 
I removed the use of QuickDraw. The DisplayState data is now DMA'd to 
the graphics card instead of copied by the CPU. This uses apple's 
texture range extensions. The change means that the transfer of 
"display memory" incurs no CPU overhead. I also put in a bit more 
mouse stuff, and made some other fixes. I can't work out how to get 
the Window to get focus once it loses it, which is really a pain.


I Shark'd it to make sure there wasn't any overhead from the 
texturing. I tested with Knoppix and FreeDOS.


I am not sure if this is of interest to people, I just had a lazy 
weekend. I would like to give the code to the qemu project, but don't 
really know how to.



thanks,
peter.



___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Great News! Especially, if somebody writes a openGL driver/wrapper for 
the GuestOS.


I'm working on cocoa.m for some time now, especially UI Things. But I 
did not get around submitting the stuff yet. You find my diff on 
www.kberg.ch/cocoaqemu. It consists of a lot of changes (including mouse 
and keyboard support :) ) Last update: this weekend.


Mike


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] cocoa.m using openGL

2005-05-22 Thread Hetz Ben Hamo
Peter,

You can use the "diff" command (I think it's available on OS X) to
create patches, and then you can post those patches here.

Please add comments wherever possible to indicate what you done
(something small and simple).

BTW: have you tried to perform any benchmarking to see if there's any
speed gain from your work compared to the standard QEMU?

Thanks,
Hetz

On 5/22/05, Peter Stewart <[EMAIL PROTECTED]> wrote:
> Hello to all,
> 
> esp. Pierre d'Herbemont,
> 
> I have changed cocoa.m (0.7.0) to use openGL with very fast texturing.
> I removed the use of QuickDraw. The DisplayState data is now DMA'd to
> the graphics card instead of copied by the CPU. This uses apple's
> texture range extensions. The change means that the transfer of
> "display memory" incurs no CPU overhead. I also put in a bit more mouse
> stuff, and made some other fixes. I can't work out how to get the
> Window to get focus once it loses it, which is really a pain.
> 
> I Shark'd it to make sure there wasn't any overhead from the texturing.
> I tested with Knoppix and FreeDOS.
> 
> I am not sure if this is of interest to people, I just had a lazy
> weekend. I would like to give the code to the qemu project, but don't
> really know how to.
> 
> 
> thanks,
> peter.
> 
> 
> 
> ___
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
>


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


[Qemu-devel] cocoa.m using openGL

2005-05-22 Thread Peter Stewart

Hello to all,

esp. Pierre d'Herbemont,

I have changed cocoa.m (0.7.0) to use openGL with very fast texturing. 
I removed the use of QuickDraw. The DisplayState data is now DMA'd to 
the graphics card instead of copied by the CPU. This uses apple's 
texture range extensions. The change means that the transfer of 
"display memory" incurs no CPU overhead. I also put in a bit more mouse 
stuff, and made some other fixes. I can't work out how to get the 
Window to get focus once it loses it, which is really a pain.


I Shark'd it to make sure there wasn't any overhead from the texturing. 
I tested with Knoppix and FreeDOS.


I am not sure if this is of interest to people, I just had a lazy 
weekend. I would like to give the code to the qemu project, but don't 
really know how to.



thanks,
peter.



___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel