コード例 #1
0
ファイル: game.py プロジェクト: p-blomberg/yamosg
	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()
コード例 #2
0
ファイル: window.py プロジェクト: p-blomberg/yamosg
	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())
コード例 #3
0
ファイル: game.py プロジェクト: p-blomberg/yamosg
	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()
コード例 #4
0
 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)
コード例 #5
0
ファイル: game.py プロジェクト: p-blomberg/yamosg
	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
コード例 #6
0
ファイル: composite.py プロジェクト: p-blomberg/yamosg
	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)
コード例 #7
0
ファイル: composite.py プロジェクト: p-blomberg/yamosg
	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)
コード例 #8
0
    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)
コード例 #9
0
ファイル: window.py プロジェクト: p-blomberg/yamosg
	def on_resize(self, size, final):
		FBOWidget.on_resize(self, size, final)
		self._decoration.on_resize(size, final)