/[gzz]/gzz/gfx/libpaper/texops_NV2X.py
ViewVC logotype

Diff of /gzz/gfx/libpaper/texops_NV2X.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by jvk, Tue Oct 15 12:24:26 2002 UTC revision 1.6 by jvk, Tue Oct 15 13:52:04 2002 UTC
# Line 40  shaderTypes = [ Line 40  shaderTypes = [
40          ("T2", "RGB2"),          ("T2", "RGB2"),
41          ("T2", "RGB2"),          ("T2", "RGB2"),
42      ],      ],
43      [   ("T2", "DSDT"),      [
44          ("O", "FOOBAR")          ("T2", "DSDT"),
45            ("O", "RGB2"),
46            ("T2", "DSDT"),
47            ("O", "RGB2")
48      ],      ],
49      [   ("T2", "DSDT_HILO"),      [
50          ("OH", "FOOBAR")          ("T2", "DSDT_HILO"),
51            ("OH", "RGB2"),
52            ("T2", "DSDT_HILO"),
53            ("OH", "RGB2"),
54      ]      ]
55  ]  ]
56    
# Line 88  class NoTextureSetForStage: Line 94  class NoTextureSetForStage:
94      pass      pass
95    
96  class ShaderPass:  class ShaderPass:
97      def __init__(self, shaderType):      def __init__(self, shaderType, maxaniso):
98          self.st = shaderType          self.st = shaderType
99          self.tex = [None for texunit in shaderType]          self.tex = [None for texunit in shaderType]
100            self.maxaniso = maxaniso
101      def getTextureTypes(self):      def getTextureTypes(self):
102          "Get the texture type names (D2, R2 ...) for the texture units."          "Get the texture type names (D2, R2 ...) for the texture units."
103          return [texunit[1] for texunit in self.st]          return [texunit[1] for texunit in self.st]
# Line 99  class ShaderPass: Line 106  class ShaderPass:
106          return [shaderTexgenTypes[texunit[0]] for texunit in self.st]          return [shaderTexgenTypes[texunit[0]] for texunit in self.st]
107      def setTexture(self, ind, tex):      def setTexture(self, ind, tex):
108          self.tex[ind] = tex          self.tex[ind] = tex
109      def setupCode(self):      def setupCode(self, rnd):
110          c = """          c = """
111              Enable TEXTURE_SHADER_NV              Enable TEXTURE_SHADER_NV
112          """          """
# Line 113  class ShaderPass: Line 120  class ShaderPass:
120                  TexEnv TEXTURE_SHADER_NV SHADER_OPERATION_NV %(op)s                  TexEnv TEXTURE_SHADER_NV SHADER_OPERATION_NV %(op)s
121    
122              """ % locals()              """ % locals()
123    
124              if target != None:              if target != None:
125                  texid = self.tex[t].getTexId()                  texid = self.tex[t].getTexId()
126                  minfilter = self.tex[t].minfilter                  minfilter = self.tex[t].minfilter
# Line 131  class ShaderPass: Line 139  class ShaderPass:
139                  c += """                  c += """
140                      TexEnv TEXTURE_SHADER_NV PREVIOUS_TEXTURE_INPUT_NV TEXTURE%s                      TexEnv TEXTURE_SHADER_NV PREVIOUS_TEXTURE_INPUT_NV TEXTURE%s
141                  """ % (self.st[t][2])                  """ % (self.st[t][2])
142    
143                if shortOp in [ "O", "OH" ]:
144                    hyper = rnd.nextGaussian()
145                    mat = ( rnd.nextGaussian()*hyper,
146                            rnd.nextGaussian()*hyper,
147                            rnd.nextGaussian()*hyper,
148                            rnd.nextGaussian()*hyper )
149                    c += """
150                        TexEnv TEXTURE_SHADER_NV OFFSET_TEXTURE_MATRIX_NV %s %s %s %s
151                    """ % mat
152                
153    
154            if self.maxaniso != None:
155                maxaniso = self.maxaniso
156                c += """
157                    TexParameter %(target)s TEXTURE_MAX_ANISOTROPY_EXT %(maxaniso)s
158                """ % locals()
159    
160          return c          return c
161      def getRGBoutputs(self):      def getRGBoutputs(self):
162          """A list of the texture units whose outputs are useful in          """A list of the texture units whose outputs are useful in
# Line 143  class ShaderPass: Line 169  class ShaderPass:
169          return [self.tex[i].scale for i in self.getRGBoutputs()]          return [self.tex[i].scale for i in self.getRGBoutputs()]
170    
171  def makeNormalShaderPass(maxaniso = None):  def makeNormalShaderPass(maxaniso = None):
172      # XXX: TODO: implement maxaniso as in texops_STD      return ShaderPass(shaderTypes[5], maxaniso)
     #return ShaderPass(shaderTypes[3])  
     return ShaderPass(shaderTypes[5])  

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26