gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] gzz/gfx demo/papertest.py libpaper/papermill.py...


From: Janne V. Kujala
Subject: [Gzz-commits] gzz/gfx demo/papertest.py libpaper/papermill.py...
Date: Mon, 07 Oct 2002 08:14:05 -0400

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Janne V. Kujala <address@hidden>        02/10/07 08:14:05

Modified files:
        gfx/demo       : papertest.py 
        gfx/libpaper   : papermill.py textures.py 
Added files:
        gfx/libutil    : myimport.py 

Log message:
        Make libpaper into real modules; add gfx.libutil.myimport module for a 
reloading import replacement; implement texture caching in 
gfx.libpaper.textures module, remaking the texture .bin files if source is 
changed

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/papertest.py.diff?tr1=1.34&tr2=1.35&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libpaper/papermill.py.diff?tr1=1.34&tr2=1.35&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libpaper/textures.py.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libutil/myimport.py?rev=1.1

Patches:
Index: gzz/gfx/demo/papertest.py
diff -c gzz/gfx/demo/papertest.py:1.34 gzz/gfx/demo/papertest.py:1.35
*** gzz/gfx/demo/papertest.py:1.34      Mon Oct  7 06:15:09 2002
--- gzz/gfx/demo/papertest.py   Mon Oct  7 08:14:04 2002
***************
*** 25,31 ****
  def ignore(s):
      return ""
  
! execfile("gfx/libpaper/papermill.py")
  
  benchmark = 0
  def globalkey(k):
--- 25,33 ----
  def ignore(s):
      return ""
  
! import gfx.libpaper.papermill
! from gfx.libpaper.papermill import ThePaperMill
! reload(gfx.libpaper.papermill)
  
  benchmark = 0
  def globalkey(k):
Index: gzz/gfx/libpaper/papermill.py
diff -c gzz/gfx/libpaper/papermill.py:1.34 gzz/gfx/libpaper/papermill.py:1.35
*** gzz/gfx/libpaper/papermill.py:1.34  Fri Oct  4 09:18:18 2002
--- gzz/gfx/libpaper/papermill.py       Mon Oct  7 08:14:04 2002
***************
*** 1,21 ****
! dbg = 0
! initialized = 0
  
! import gfx.libpaper.textures
! reload(gfx.libpaper.textures)
  from gfx.libpaper.textures import Textures
  
! import gfx.libpaper.colors
! reload(gfx.libpaper.colors)
  from gfx.libpaper.colors import Colors
  
  from gzz.gfx.gl import GL,GLRen,Paper,PaperMill
  import java
  from java.lang import Math
! def initialize():
!     global initialized
!     if initialized: return
!     initialized = 1
      dbg=1
      # Discriminate between different renderers.
      # These are for debug output only.
--- 1,28 ----
! #initialized = 0
! 
! from gfx.libutil.myimport import my_import
  
! my_import("gfx.libpaper.textures")
  from gfx.libpaper.textures import Textures
  
! my_import("gfx.libpaper.colors")
  from gfx.libpaper.colors import Colors
  
+ my_import("gfx.libpaper.texcoords")
+ from gfx.libpaper.texcoords import TexGenXYRepeatUnit
+ 
+ my_import("gfx.libpaper.params")
+ from gfx.libpaper.params import *
+ 
  from gzz.gfx.gl import GL,GLRen,Paper,PaperMill
  import java
  from java.lang import Math
! 
! #def initialize():
! if 1:
!     #global initialized
!     #if initialized: return
!     #initialized = 1
      dbg=1
      # Discriminate between different renderers.
      # These are for debug output only.
***************
*** 28,36 ****
      # The backend files to load
      files = [
          #"textures.py",
!         "texcoords.py",
          #"colors.py",
!         "params.py"
          ]
  
      #
--- 35,43 ----
      # The backend files to load
      files = [
          #"textures.py",
!         #"texcoords.py",
          #"colors.py",
!         #"params.py"
          ]
  
      #
***************
*** 43,54 ****
          # XXX Should check separately for texture_shader2,
          # otherwise it'll be SLOW.
          if dbg: print "Using NV20 texture shaders"
!         files.append("texops_NV2X.py")
!         #from gfx.libpaper.texops_NV2X import *
      else:
          if dbg: print "Using unextended OpenGL texture accesses"
!         files.append("texops_STD.py")
!         #from gfx.libpaper.texops_STD import *
  
  
      # Check which combiners to use.
--- 50,64 ----
          # XXX Should check separately for texture_shader2,
          # otherwise it'll be SLOW.
          if dbg: print "Using NV20 texture shaders"
!         #files.append("texops_NV2X.py")
!         my_import("gfx.libpaper.texops_NV2X")
!         from gfx.libpaper.texops_NV2X import *
!         
      else:
          if dbg: print "Using unextended OpenGL texture accesses"
!         #files.append("texops_STD.py")
!         my_import("gfx.libpaper.texops_STD")
!         from gfx.libpaper.texops_STD import *
  
  
      # Check which combiners to use.
***************
*** 59,69 ****
          if maxcomb < 4:
              # use NV10 version
              if dbg: print "Using NV10 combiners ",maxcomb
!             files.append("texcomb_NV1X.py")
          else:
              # use NV20 version
              if dbg: print "Using NV20 combiners ",maxcomb
!             files.append("texcomb_NV2X.py")
      else:
          assert 0, "Sorry, can't do without NVIDIA register combiners yet."
  
--- 69,83 ----
          if maxcomb < 4:
              # use NV10 version
              if dbg: print "Using NV10 combiners ",maxcomb
!             #files.append("texcomb_NV1X.py")
!             my_import("gfx.libpaper.texcomb_NV1X")
!             from gfx.libpaper.texcomb_NV1X import *
          else:
              # use NV20 version
              if dbg: print "Using NV20 combiners ",maxcomb
!             #files.append("texcomb_NV2X.py")
!             my_import("gfx.libpaper.texcomb_NV2X")
!             from gfx.libpaper.texcomb_NV2X import *
      else:
          assert 0, "Sorry, can't do without NVIDIA register combiners yet."
  
***************
*** 71,76 ****
--- 85,92 ----
          print "Load file ",f
          execfile("gfx/libpaper/"+f, globals())
  
+ dbg = 0
+ 
  def randvec(rnd): return [rnd.nextDouble() for i in range(0,3)]
  
  def randunitvec(rnd):
***************
*** 112,118 ****
      pas.setTeardowncode("PopAttrib")
  
  class ThePaperMill(PaperMill):
!     initialize()
  
      def getPaper(self, seed, passmask=[1,1,1,1,1,1,1]):
          reg = Registry()
--- 128,134 ----
      pas.setTeardowncode("PopAttrib")
  
  class ThePaperMill(PaperMill):
!     #initialize()
  
      def getPaper(self, seed, passmask=[1,1,1,1,1,1,1]):
          reg = Registry()
Index: gzz/gfx/libpaper/textures.py
diff -c gzz/gfx/libpaper/textures.py:1.12 gzz/gfx/libpaper/textures.py:1.13
*** gzz/gfx/libpaper/textures.py:1.12   Fri Oct  4 09:18:18 2002
--- gzz/gfx/libpaper/textures.py        Mon Oct  7 08:14:04 2002
***************
*** 18,30 ****
  
  ptextures = {}
  
  class NamedTexture:
      def __init__(self, name, args):
        print "Generating texture: ",name, args
!         self.texture = GL.createTexture()
!       res = self.texture.shade(*args)
          self.name = name
-       print "SHADER: ", res, self.texture.getTexId()
      def getTexId(self):
          return self.texture.getTexId()
      def getName(self):
--- 18,65 ----
  
  ptextures = {}
  
+ import os
+ from gfx.libutil.myimport import get_file_ctime
+ 
+ if "texcache" not in globals().keys():
+     texcache = {}
+     
+ def getCachedTexture(args):
+     global texcache
+ 
+     name = args[6]
+     file = "gfx/libtexture/" + name
+     binfile = file + ".bin"
+     srcfile = file + ".texture"
+ 
+     bintime = get_file_ctime(binfile)
+     srctime = get_file_ctime(srcfile)
+     print binfile,bintime,srcfile,srctime
+     if srctime > bintime:
+         os.system("make -C gfx/libtexture " + name + ".bin")
+         bintime = get_file_ctime(binfile)
+         
+     key = (name, tuple(args[0:7]), tuple(args[7]))
+     if texcache.has_key(key) and texcache[(key,"ctime")] == srctime:
+         print "Returning cached texture"
+         return texcache[key]
+ 
+     tex = GL.createTexture()
+     res = tex.shade(*args)
+     texcache[key] = tex
+     texcache[(key,"ctime")] = srctime
+     print "SHADER: ", res, tex.getTexId()
+     return tex
+ 
+ 
  class NamedTexture:
      def __init__(self, name, args):
        print "Generating texture: ",name, args
!         #self.texture = GL.createTexture()
!       #res = self.texture.shade(*args)
!       #print "SHADER: ", res, self.texture.getTexId()
!         self.texture = getCachedTexture(args)
          self.name = name
      def getTexId(self):
          return self.texture.getTexId()
      def getName(self):




reply via email to

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