gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] gzz ./Makefile gfx/jni/GzzGL-jni.cxx gfx/libos/...


From: Tuomas J. Lukka
Subject: [Gzz-commits] gzz ./Makefile gfx/jni/GzzGL-jni.cxx gfx/libos/...
Date: Tue, 10 Dec 2002 07:45:52 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Tuomas J. Lukka <address@hidden>        02/12/10 07:45:52

Modified files:
        .              : Makefile 
        gfx/jni        : GzzGL-jni.cxx 
        gfx/libos      : Os-GLX.cxx 
        gfx/librenderables: Renderables.cxx 
        gfx/util       : anim.py 
        gzz/client/gl  : GLAPI.java 

Log message:
        Now pbuffer in animation works... bizarre bug to work around, though...

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/Makefile.diff?tr1=1.220&tr2=1.221&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/jni/GzzGL-jni.cxx.diff?tr1=1.69&tr2=1.70&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libos/Os-GLX.cxx.diff?tr1=1.15&tr2=1.16&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/librenderables/Renderables.cxx.diff?tr1=1.10&tr2=1.11&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/util/anim.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/client/gl/GLAPI.java.diff?tr1=1.21&tr2=1.22&r1=text&r2=text

Patches:
Index: gzz/Makefile
diff -u gzz/Makefile:1.220 gzz/Makefile:1.221
--- gzz/Makefile:1.220  Mon Dec  2 15:12:29 2002
+++ gzz/Makefile        Tue Dec 10 07:45:52 2002
@@ -460,7 +460,7 @@
        $(GLLIB) $(JYTHON) $(GLDEMO) gfx/demo/$(DEMO).py
 
 runanim:
-       $(GLLIB) $(JYTHON) $(GLDEMO) gfx/anim/$(DEMO).py
+       $(GLLIB) $(JYTHON) gfx/util/anim.py $(DBG) gfx/anim/$(ANIM).py
 
 runppserver:
        $(JYTHON) gzz/modules/pp/ppserver.py
Index: gzz/gfx/jni/GzzGL-jni.cxx
diff -u gzz/gfx/jni/GzzGL-jni.cxx:1.69 gzz/gfx/jni/GzzGL-jni.cxx:1.70
--- gzz/gfx/jni/GzzGL-jni.cxx:1.69      Thu Dec  5 05:57:34 2002
+++ gzz/gfx/jni/GzzGL-jni.cxx   Tue Dec 10 07:45:52 2002
@@ -276,7 +276,7 @@
 
 // RenderingSurface
 
-JNIEXPORT jint JNICALL Java_gzz_gfx_gl_GL_createRenderingSurfaceImpl
+JNIEXPORT jint JNICALL Java_gzz_gfx_gl_GL_createStableRenderingSurfaceImpl
   (JNIEnv *env, jclass, jint w, jint h) {
        Os::RenderingSurface *win = ws->openStableOffScreen(w, h);
        return windows.add(win);
Index: gzz/gfx/libos/Os-GLX.cxx
diff -u gzz/gfx/libos/Os-GLX.cxx:1.15 gzz/gfx/libos/Os-GLX.cxx:1.16
--- gzz/gfx/libos/Os-GLX.cxx:1.15       Thu Dec  5 03:32:57 2002
+++ gzz/gfx/libos/Os-GLX.cxx    Tue Dec 10 07:45:52 2002
@@ -76,11 +76,12 @@
      */
     static int pbufferAttributes[] = {
        GLX_RENDER_TYPE, GLX_RGBA_BIT,
+       GLX_DOUBLEBUFFER, 0,
        GLX_RED_SIZE, 1,
        GLX_GREEN_SIZE, 1,
        GLX_BLUE_SIZE, 1,
        GLX_DEPTH_SIZE, 1, 
-       GLX_STENCIL_SIZE, 0, 
+       GLX_STENCIL_SIZE, 1, 
        GLX_DRAWABLE_TYPE, GLX_PBUFFER_BIT,
        None
     };
@@ -252,17 +253,22 @@
                GLX_PBUFFER_WIDTH, w,
                GLX_PBUFFER_HEIGHT, h,
                GLX_PRESERVED_CONTENTS, 1,
-               GLX_LARGEST_PBUFFER, 1,
+               GLX_LARGEST_PBUFFER, 0,
                0
            };
            pbuf = glXCreatePbuffer(ws->dpy, ws->pbFbConfig[0], attrs);
 
            unsigned val;
            glXQueryDrawable(ws->dpy, pbuf, GLX_PBUFFER_WIDTH, &val);
-           w = val;
+           this->w = val;
 
            glXQueryDrawable(ws->dpy, pbuf, GLX_PBUFFER_HEIGHT, &val);
-           h = val;
+           this->h = val;
+
+           DBG(dbg) << "PBuffer reserved "<<this->w<<" "<<this->h<<"\n";
+           // XXX getting weird results...
+           this->w = w;
+           this->h = h;
        }
 
        bool setCurrent() {
Index: gzz/gfx/librenderables/Renderables.cxx
diff -u gzz/gfx/librenderables/Renderables.cxx:1.10 
gzz/gfx/librenderables/Renderables.cxx:1.11
--- gzz/gfx/librenderables/Renderables.cxx:1.10 Tue Nov  5 03:21:01 2002
+++ gzz/gfx/librenderables/Renderables.cxx      Tue Dec 10 07:45:52 2002
@@ -28,18 +28,19 @@
     void setStandardCoordinates(Vec windowSize) {
        int w = (int)windowSize.x;
        int h = (int)windowSize.y;
-       DBG(dbg) << "Viewport\n";
        glViewport(0, 0, w, h);
-       DBG(dbg) << "mmode\n";
+       GLERR
        glMatrixMode(GL_PROJECTION);
-       DBG(dbg) << "loadid\n";
+       GLERR
        glLoadIdentity();
-       DBG(dbg) << "ortho\n";
+       GLERR
        glOrtho(0, w, h, 0, 10000, -10000);
-       DBG(dbg) << "mm\n";
+       GLERR
        glMatrixMode(GL_MODELVIEW);
-       DBG(dbg) << "loadid\n";
+       GLERR
        glLoadIdentity();
+       GLERR
+       DBG(dbg) << "stdcoords done\n";
 
        
     }
Index: gzz/gfx/util/anim.py
diff -u gzz/gfx/util/anim.py:1.1 gzz/gfx/util/anim.py:1.2
--- gzz/gfx/util/anim.py:1.1    Sun Dec  8 07:15:57 2002
+++ gzz/gfx/util/anim.py        Tue Dec 10 07:45:52 2002
@@ -1,17 +1,23 @@
 #(c): Tuomas J. Lukka
 
 # A GL animation framework
+#
+# To be run as main, with cmd-line param
 
 from __future__ import nested_scopes
 
 import sys
 from java.lang import System,Runnable
 from gzz.client import AbstractBinder, AbstractShower, AbstractUpdateManager, 
GraphicsAPI, Screen
+from gzz.gfx.gl import GL, GLRen
 from gfx.util import reload as reloadmod
+from gfx.util import misc
 import gzz
 import getopt
 import traceback
 
+animSize = (400, 300)
+
 System.setProperty("gzzclient", "gl")
 
 print "ARGV:",sys.argv
@@ -74,7 +80,7 @@
     if 1:
        reloadmod.reloadModules()
     dict = {}
-    dict["film"] = Film(w)
+    dict["film"] = Film(rs)
     try:
        exec open(animfile) in dict, dict
        print dict
@@ -99,16 +105,44 @@
        AbstractUpdateManager.chg()
 class Show(AbstractShower):
     def generate(self):
-       film.renderFrame(w, frameno)
-       
+       film.renderFrame(rs, frameno)
+       print "1"
+       rsbuf.readFromBuffer(rs.getRenderingSurface(), 
+                   "FRONT", 0, 0, animSize[0], animSize[1], 
+                       "RGB", "UNSIGNED_BYTE")
+       print "2"
+       vs = w.createVobScene()
+       vs.map.put(misc.background((0, 0, 0.2)))
+       cs = vs.translateCS(0, "tr", 300, 300) # 0, animSize[1]-1)
+       vs.map.put(
+           misc.getDListNocoords("""
+               Color 1 1 1 1
+           """)
+       )
+       vs.map.put(
+           GLRen.createDrawPixels(
+               animSize[0], animSize[1],
+               "RGB", "UNSIGNED_BYTE", rsbuf),
+               cs)
+       # rsbuf.drawPixels(w.getRenderingSurface(), 
+       #               0, 0, 0, animSize[0], animSize[1], 
+       #               "RGB", "UNSIGNED_BYTE")
+       print "3"
+       return vs
 
 class Main(Runnable):
     def run(self):
        b,s = (Bindings(), Show())
        global w
-       global rs
+       global rs, rsbuf
        w = gfxapi.createWindow()
-       w.setLocation(0,0,1024,768)
+       w.setLocation(0,0,800,600)
+       if 1:
+           rs = gfxapi.createStableOffscreen(*animSize)
+       else:
+           rs = gfxapi.createWindow()
+           rs.setLocation(0,600,animSize[0],animSize[1])
+       rsbuf = GL.createByteVector(animSize[0] * animSize[1] * 3)
        loadAnim()
        scr = Screen(w, b, s)
        AbstractUpdateManager.addWindow(scr)
Index: gzz/gzz/client/gl/GLAPI.java
diff -u gzz/gzz/client/gl/GLAPI.java:1.21 gzz/gzz/client/gl/GLAPI.java:1.22
--- gzz/gzz/client/gl/GLAPI.java:1.21   Fri Nov  1 20:23:45 2002
+++ gzz/gzz/client/gl/GLAPI.java        Tue Dec 10 07:45:52 2002
@@ -44,6 +44,9 @@
                    }
                });
     }
+    public RenderingSurface createStableOffscreen(int w, int h) {
+       return new GLRenderingSurface(this, 0, 0, w, h);
+    }
     public Window createWindow() {
        return new GLScreen(this);
     }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]