/[gzz]/gzz/gfx/demo/opengl/imaging.py
ViewVC logotype

Diff of /gzz/gfx/demo/opengl/imaging.py

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

revision 1.3 by tjl, Wed Nov 20 19:22:20 2002 UTC revision 1.4 by tjl, Wed Nov 20 22:12:34 2002 UTC
# Line 1  Line 1 
1  from gfx.libutil import effects  from gfx.libutil import effects, nvcode
2    
3  c = java.util.Random()  c = java.util.Random()
4    
5    ts = 512
6    
7  class BlurScene:  class BlurScene:
8      def __init__(self):      def __init__(self):
9          self.bv = GL.createByteVector(1024 * 768 * 4)          self.bv = GL.createByteVector(1024 * 768 * 4)
10          self.f = effects.IrreguFrame(0, 0, 1000, 1000, 20, 200)          self.f = effects.IrreguFrame(0, 0, 1000, 1000, 20, 200)
11            self.tex = GL.createTexture()
12            self.tex.loadNull2D(0, "RGBA", ts, ts, 0, "RGBA", "UNSIGNED_BYTE")
13      def key(self, key):      def key(self, key):
14          pass          pass
15      def scene(self, vs):      def scene(self, vs):
16          vs.map.put(background((0, .1, 0)))          vs.map.put(background((0, .1, 0)))
17    
18          sx = 300          sx = ts
19          sy = 300          sy = ts
20    
21    
22          f1cs = vs.orthoCS(0, "X", 50, 100*c.nextDouble(), 100*c.nextDouble(), 200, 100)          f1cs = vs.orthoCS(0, "X", 50, 100*c.nextDouble(), 100*c.nextDouble(), 200, 100)
# Line 26  class BlurScene: Line 30  class BlurScene:
30          vs.put(coloredQuad((1,1,1)), "C", 1000, 180*c.nextDouble(), 180*c.nextDouble(), 200, 100)          vs.put(coloredQuad((1,1,1)), "C", 1000, 180*c.nextDouble(), 180*c.nextDouble(), 200, 100)
31    
32          vs.map.put(getDListNocoords("""          vs.map.put(getDListNocoords("""
33          PushAttrib CURRENT_BIT COLOR_BUFFER_BIT DEPTH_BUFFER_BIT ENABLE_BIT PIXEL_MODE_BIT          PushAttrib CURRENT_BIT COLOR_BUFFER_BIT DEPTH_BUFFER_BIT ENABLE_BIT PIXEL_MODE_BIT TEXTURE_BIT
34              Disable ALPHA_TEST              Disable ALPHA_TEST
35              Disable BLEND              Disable BLEND
36              ReadBuffer BACK              ReadBuffer BACK
# Line 57  class BlurScene: Line 61  class BlurScene:
61                  1 0 0 1                  1 0 0 1
62              Enable POST_CONVOLUTION_COLOR_TABLE              Enable POST_CONVOLUTION_COLOR_TABLE
63              Disable POST_CONVOLUTION_COLOR_TABLE              Disable POST_CONVOLUTION_COLOR_TABLE
64          """))  
65                BindTexture TEXTURE_2D %(tex)s
66                TexParameter TEXTURE_2D TEXTURE_MAX_LEVEL 0
67                Enable TEXTURE_2D
68            """ % {
69                "tex": self.tex.getTexId(),
70            }))
71    
72          cs = vs.orthoCS(0, "dp", 0, 20, sy+10, 1, 1)          cs = vs.orthoCS(0, "dp", 0, 20, sy+10, 1, 1)
73          cs2 = vs.orthoCS(0, "dp2", 300, 300, sy+10, 1, 1)          cs2 = vs.orthoCS(0, "dp2", 300, 300, sy+10, sx, sy)
74          if 1:          if 1:
75              getp = GLRen.createReadPixels(sx, sy,              getp = GLRen.createReadPixels(sx, sy,
76                            "DEPTH_COMPONENT", "UNSIGNED_SHORT", self.bv)
77                texim = GLRen.createTexSubImage2D("TEXTURE_2D", 0, 0, 0, ts, ts,
78                    "RGBA", "UNSIGNED_SHORT_4_4_4_4", self.bv)
79                
80                vs.map.put(getp, cs)
81                vs.map.put(texim)
82    
83                # vs.map.put(coloredQuad((1,0,0)), cs2)
84    
85                vs.map.put(getDListNocoords(nvcode.combinercode("""
86                    BindTexture TEXTURE_2D %(tex)s
87                    PushAttrib TEXTURE_BIT
88                    TexGen S TEXTURE_GEN_MODE OBJECT_LINEAR
89                    TexGen S OBJECT_PLANE 1 0 0 -300
90                    TexGen T TEXTURE_GEN_MODE OBJECT_LINEAR
91                    TexGen T OBJECT_PLANE 0 1 0 -300
92                    Enable TEXTURE_GEN_S
93                    Enable TEXTURE_GEN_T
94    
95                    ActiveTexture TEXTURE1
96                    BindTexture TEXTURE_2D %(tex)s
97                    Enable TEXTURE_2D
98                    TexGen S TEXTURE_GEN_MODE OBJECT_LINEAR
99                    TexGen S OBJECT_PLANE 1 0 0 -300.005
100                    TexGen T TEXTURE_GEN_MODE OBJECT_LINEAR
101                    TexGen T OBJECT_PLANE 0 1 0 -300.005
102                    Enable TEXTURE_GEN_S
103                    Enable TEXTURE_GEN_T
104    
105                    TexEnv TEXTURE_ENV TEXTURE_ENV_MODE MODULATE
106    
107                    ActiveTexture TEXTURE0
108    
109                    Enable REGISTER_COMBINERS_NV
110                    CombinerParameterNV NUM_GENERAL_COMBINERS_NV 2
111    
112                    # Calculate Tex0 - Tex1
113                    CI0 RGB A TEXTURE0 UNSIGNED_IDENTITY_NV RGB
114                    CI0 RGB B ZERO UNSIGNED_INVERT_NV RGB
115                    CI0 RGB C TEXTURE1 UNSIGNED_IDENTITY_NV RGB
116                    CI0 RGB D ZERO EXPAND_NORMAL_NV RGB
117                    CO0 RGB DISCARD_NV DISCARD_NV SPARE0_NV SCALE_BY_FOUR_NV NONE FALSE FALSE FALSE
118    
119                    CI1 RGB A SPARE0_NV SIGNED_IDENTITY_NV RGB
120                    CI1 RGB B SPARE0_NV SIGNED_IDENTITY_NV RGB
121                    CO1 RGB SPARE0_NV DISCARD_NV DISCARD_NV SCALE_BY_FOUR_NV NONE TRUE FALSE FALSE
122    
123                    FCI A SPARE0_NV UNSIGNED_IDENTITY_NV RGB
124                    FCI B ZERO UNSIGNED_INVERT_NV RGB
125                    FCI C ZERO UNSIGNED_IDENTITY_NV RGB
126                    FCI D ZERO UNSIGNED_IDENTITY_NV RGB
127    
128                """ % {
129                    "tex" : self.tex.getTexId()
130                })))
131                vs.map.put(quad(), cs2)
132                vs.map.put(getDListNocoords("""
133                    PopAttrib
134                """))
135            elif 1:
136                getp = GLRen.createReadPixels(sx, sy,
137                          "RGBA", "UNSIGNED_BYTE", self.bv)                          "RGBA", "UNSIGNED_BYTE", self.bv)
138              putp = GLRen.createDrawPixels(sx, sy,              putp = GLRen.createDrawPixels(sx, sy,
139                          "RGBA", "UNSIGNED_BYTE", self.bv)                          "RGBA", "UNSIGNED_BYTE", self.bv)

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

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