def __init__(self, client, size): FBOWidget.__init__(self, Vector2i(0,0), size) self._client = client self._entities = {} self._selection = [] # current selected entities self._scale = 1.0 self._camera = Vector3(0,0,50) self._rect = Rect(0,0,0,0) self._panstart = None # position where the panning has started self._panref = None self._is_panning = False self._is_selecting = False # cannot use numpy directly as it might not be available on stupid OSs (OSX, I'm looking at you!) self._viewport = glGetInteger(GL_VIEWPORT) self._viewport[0] = 0 self._viewport[1] = 0 self._viewport[2] = 0 self._viewport[3] = 0 self._background = [None, None, None] for i, filename in enumerate(['space_0.png', 'space_1.png', 'space_2.png']): self._background[i] = glGenTextures(1) fp = resources.open(('textures/background', filename), 'rb') surface = pygame.image.load(fp).convert_alpha() data = pygame.image.tostring(surface, "RGBA", 0) glBindTexture(GL_TEXTURE_2D, self._background[i]) glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, surface.get_width(), surface.get_height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, data ); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR) glBindTexture(GL_TEXTURE_2D, 0) self._calc_view_matrix()
def __init__(self, position, size, bordersize=1, format=GL_RGBA8, *args, **kwargs): if position is None: position = get_autopos(size) BaseWindow.__init__(self, **kwargs) FBOWidget.__init__(self, position, size, *args, format=format, **kwargs) self._bordersize = bordersize self._decoration = WindowDecoration(size, self.title())
def on_resize(self, size, final): FBOWidget.on_resize(self, size, final) #self._viewport[2] = size.x #self._viewport[3] = size.y # use the parent size (which is a composite) #FBOWidget.on_resize(self, self.parent.size, final) self._viewport[2] = int(self.parent.size.x) self._viewport[3] = int(self.parent.size.y) self._calc_view_matrix()
def __init__(self, position, size, children=[], format=GL_RGB8, *args, **kwargs): Container.__init__(self, sort_key=lambda x: x.__zorder, children=children) FBOWidget.__init__(self, position, size, *args, format=format, **kwargs)
def projection(self): self._ortho_projection = FBOWidget.projection(self) fov = 90.0 near = 0.1 far = 1000.0 glPushMatrix() glLoadIdentity() gluPerspective(fov, self.size.ratio(), near, far) glScalef(1, -1.0, 1); p = glGetDouble(GL_MODELVIEW_MATRIX) glPopMatrix() return p
def on_resize(self, size, final): FBOWidget.on_resize(self, size, final) # inform children that parent has been resized, but retain original. for x in self.get_children(): x.on_resize(x.size, True)
def on_resize(self, size, final): FBOWidget.on_resize(self, size, final) self._decoration.on_resize(size, final)