Example #1
0
    def test_assign2(self):
        register_user_type(Point)
        p1 = Point(33, 77, 99, 3.5, Vector3(2.2, 4.4, 7.7), Vector2(3.3, 5.5),
                   Vector4(1.1, 2.2, 3.3, 4.4))
        code = """
idx = p1.idx
p1.x = 55
pp = 555
p1.y = pp
g = 4.8
p1.radius = g
g = (4,5,6)
p1.position = g
p1.size = (6,7)
p1.pp = (8,1,3,4)

        """
        props = {'p1': p1, 'idx': 44}
        bs = BasicShader(code, props)
        runtime = Runtime()
        bs.prepare([runtime])
        #print (bs.shader._code)

        bs.execute()

        val = bs.shader.get_value('idx')
        self.assertEqual(33, val)
        val = bs.shader.get_value('p1.x')
        self.assertEqual(55, val)
        val = bs.shader.get_value('p1.y')
        self.assertEqual(555, val)
        val = bs.shader.get_value('p1.radius')
        self.assertAlmostEqual(val, 4.8, places=5)
        val = bs.shader.get_value('p1.position')
        self.assertAlmostEqual(val.x, 4.0, places=5)
        self.assertAlmostEqual(val.y, 5.0, places=5)
        self.assertAlmostEqual(val.z, 6.0, places=5)
        val = bs.shader.get_value('p1.size')
        self.assertAlmostEqual(val.x, 6.0, places=5)
        self.assertAlmostEqual(val.y, 7.0, places=5)
        val = bs.shader.get_value('p1.pp')
        self.assertAlmostEqual(val.x, 8.0, places=5)
        self.assertAlmostEqual(val.y, 1.0, places=5)
        self.assertAlmostEqual(val.z, 3.0, places=5)
        self.assertAlmostEqual(val.w, 4.0, places=5)
Example #2
0
    def test_assign2(self):
        register_user_type(Point)
        p1 = Point(33, 77, 99, 3.5, Vector3(2.2, 4.4, 7.7), 
                Vector2(3.3, 5.5), Vector4(1.1, 2.2, 3.3, 4.4))
        code = """
idx = p1.idx
p1.x = 55
pp = 555
p1.y = pp
g = 4.8
p1.radius = g
g = (4,5,6)
p1.position = g
p1.size = (6,7)
p1.pp = (8,1,3,4)

        """
        props = {'p1': p1, 'idx': 44}
        bs = BasicShader(code, props)
        runtime = Runtime()
        bs.prepare([runtime])
        #print (bs.shader._code)

        bs.execute()

        val = bs.shader.get_value('idx')
        self.assertEqual(33, val)
        val = bs.shader.get_value('p1.x')
        self.assertEqual(55, val)
        val = bs.shader.get_value('p1.y')
        self.assertEqual(555, val)
        val = bs.shader.get_value('p1.radius')
        self.assertAlmostEqual(val, 4.8, places=5)
        val = bs.shader.get_value('p1.position')
        self.assertAlmostEqual(val.x, 4.0, places=5)
        self.assertAlmostEqual(val.y, 5.0, places=5)
        self.assertAlmostEqual(val.z, 6.0, places=5)
        val = bs.shader.get_value('p1.size')
        self.assertAlmostEqual(val.x, 6.0, places=5)
        self.assertAlmostEqual(val.y, 7.0, places=5)
        val = bs.shader.get_value('p1.pp')
        self.assertAlmostEqual(val.x, 8.0, places=5)
        self.assertAlmostEqual(val.y, 1.0, places=5)
        self.assertAlmostEqual(val.z, 3.0, places=5)
        self.assertAlmostEqual(val.w, 4.0, places=5)
Example #3
0
from tdasm import Runtime
import renmas3.base
from renmas3.base import create_shader, create_user_type
from renmas3.base import register_user_type
from renmas3.base import arg_map, arg_list
from renmas3.base import Tile2D
from renmas3.base import Vector3

sample = create_user_type(typ="sample", fields=[('x', 0.0), ('y', 0.0), 
                                    ('ix', 0), ('iy', 0), ('weight', 1.0)])
register_user_type(sample)

def get_sample(self):
    self._curx += 1
    if self._curx == self._endx:
        self._curx = self._tile.x
        self._cury += 1
        if self._cury == self._endy:
            return None
    
    x = self._pixel_size * (self._curx + self._w2)  
    y = self._pixel_size * (self._cury + self._h2)
    return Sample(x, y, self._curx, self._cury, 1.0)

code2 = """
#input arg is sample structure, name = sam
curx = curx + 1
if curx == endx:
    curx = tilex
    cury = cury + 1
Example #4
0
from tdasm import Runtime
import renmas3.base
from renmas3.base import create_shader, create_user_type
from renmas3.base import register_user_type
from renmas3.base import arg_map, arg_list
from renmas3.base import Tile2D
from renmas3.base import Vector3

sample = create_user_type(typ="sample",
                          fields=[('x', 0.0), ('y', 0.0), ('ix', 0), ('iy', 0),
                                  ('weight', 1.0)])
register_user_type(sample)


def get_sample(self):
    self._curx += 1
    if self._curx == self._endx:
        self._curx = self._tile.x
        self._cury += 1
        if self._cury == self._endy:
            return None

    x = self._pixel_size * (self._curx + self._w2)
    y = self._pixel_size * (self._cury + self._h2)
    return Sample(x, y, self._curx, self._cury, 1.0)


code2 = """
#input arg is sample structure, name = sam
curx = curx + 1
if curx == endx:
Example #5
0
from tdasm import Runtime
from renmas3.base import ImagePRGBA
import renmas3.base
from renmas3.base import create_shader, create_argument, create_user_type
from renmas3.base import arg_map, arg_list
from renmas3.base import register_user_type
from renmas3.base import Vector3


point = create_user_type(typ="point", fields=[('x', 10), ('y', 20)])
size = create_user_type(typ="size", fields=[('w', 0.0), ('h', 0.0), ('k', (3,4,5))])
register_user_type(point)
register_user_type(size)

arg_map1 = arg_map([('p1', 3), ('p2', 4), ('ps', point), ('pm', point),('p3', 0.3),
    ('p4', (4,5,6)), ('rect', size), ('slika', ImagePRGBA)])

code = """
p1 = 484
ps.x = 14
p3 = 3.3
p4 = (92,3,3)
p5 = 55
p1 = ps.x
p7 = 8.8
p3 = p7
pm.x = ps.y
p11 = (6,7,8)
p4 = p11
p3 = p1