예제 #1
0
    def __init__(self):
        '''
        Constructor
        '''
        self.labels = []
        self.label_maker = LabelMaker(True)
        self.texture = None
        self.vertex_buffer = VertexBuffer(4, False)
        self.index_buffer = IndexBuffer(6)
        #private Paint mLabelPaint = new Paint();
        #mLabelPaint.setAntiAlias(true);

        self.vertex_buffer.add_point(0, 0, 0)  # Bottom left
        self.vertex_buffer.add_point(0, 1, 0)  # Top left
        self.vertex_buffer.add_point(1, 0, 0)  # Bottom right
        self.vertex_buffer.add_point(1, 1, 0)  # Top right

        # Triangle one: bottom left, top left, bottom right.
        self.index_buffer.add_index(0)
        self.index_buffer.add_index(1)
        self.index_buffer.add_index(2)

        # Triangle two: bottom right, top left, top right.
        self.index_buffer.add_index(2)
        self.index_buffer.add_index(1)
        self.index_buffer.add_index(3)
예제 #2
0
    def reload(self, gl, full_reload):
        # We need to regenerate the texture.  If we're re-creating the surface
        # (fullReload=true), all resources were automatically released by OpenGL,
        # so we don't want to try to release it again.  Otherwise, we need to
        # release it to avoid a resource leak (shutdown takes
        # care of freeing the texture).
        if not full_reload and self.label_maker == None:
            self.label_maker.shutdown(gl)

        self.label_maker = LabelMaker(True)
        self.texture_ref = self.label_maker.initialize(gl, self.render_state,
                                                       self.labels,
                                                       self.texture_manager)