def __buildFont(self): """ Font map betöltése és glList generálása a betűknek Felhasznált forrás: - U{Nehe: lesson 17 <http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=17>} """ glEnable(GL_TEXTURE_2D) if Config.hasValue("resource.fontmap"): self.__fontList = [] self.__fontTexture = Texture(Config.getValue("resource.fontmap")) self.__fontTexture.bindTexture() self.__fontList = glGenLists(256) for i in xrange(256): cx = ( i % 16 ) / 16.0 cy = ( i / 16 ) / 16.0 glNewList(self.__fontList + i, GL_COMPILE) glBegin(GL_QUADS) glTexCoord2f(cx, 1-cy) glVertex2i(0, 0) glTexCoord2f(cx + 0.0625, 1-cy) glVertex2i(16, 0) glTexCoord2f(cx + 0.0625, 1-cy-0.0625) glVertex2i(16, 16) glTexCoord2f(cx, 1-cy-0.0625) glVertex2i(0, 16) glEnd() glTranslate(12,0,0) glEndList() glDisable(GL_TEXTURE_2D)
def __initWindows(self): """ Az alkalmazás, a főablak és a főidőzítő inicilaizálása """ self.__application = QtGui.QApplication(['Ilo engine']) #:@ivar: Az alkalmazás self.__window = MainWindow() #:@ivar: A főablak self.__window.resize(Config.getValue("window.width"), Config.getValue("window.height")) self.__window.show() self.__timer = QtCore.QTimer(self.__window) #:@ivar: A fő időzítő
def __initGLContext(self): """ Az OpenGL környezeti paraméterek beállítása Az OpenGL környezet létrehozása A visszahívó függvény beállítása """ glFormat = QtOpenGL.QGLFormat() glFormat.setDirectRendering(True) glFormat.setDoubleBuffer(True) glFormat.setDepth(True) glFormat.setStencil(True) glFormat.setStencilBufferSize(Config.getValue("system.stencil_bits")) glFormat.setSampleBuffers(True) glFormat.setSamples(0) glFormat.setSwapInterval(0) QtOpenGL.QGLFormat.setDefaultFormat(glFormat) self.__context = GLWidget(self.__window, self) #:@ivar: Grafikus környezet self.__window.setGLContext(self.__context) self.__context.disp.addEventListener(Event.GL_INIT, self.__onGLinited) self.__context.disp.addEventListener(MouseEvent.CLICK, self.__eventReflection) self.__context.disp.addEventListener(MouseEvent.RELEASE, self.__eventReflection) self.__context.disp.addEventListener(MouseEvent.MOVE, self.__mouseMove) self.__context.disp.addEventListener(MouseEvent.WHEEL, self.__eventReflection) self.__window.disp.addEventListener(KeyboardEvent.PRESS, self.__eventReflection)
def __initEngine(self): """ A motor alap beállításainak elvégzése """ self.__fps = Config.getValue("engine.fps") #:@ivar: Maximális FPS szám self.__curFPS = -1 #:@ivar: Aktuális FPS szám self.__countFPS = 0 #:@ivar: FPS számláló self.__HiddenMouse = False #:@ivar: Az egér mutató láthatóságának állapota
def __init__(self): """ Ilo API inicilaizálása 1. az ősosztály inicilaizálása 2. az alkalmazás és az ablak létrezozása 3. OpneGL környezet létrehozása 4. az alkalmazás indítása """ RenderScene.__init__(self) Config.loadConfigXML("data/config.xml", True) self.__initEngine() self.__initWindows() self.__initGLContext() self.__application.exec_()
def setShader(self, shader ): """ Shader hozzáadása az anyagmintához, ha engedélyezve vannak a C{shader} a konfigurációban @param shader: Az anyagmintához kapcsolandó shader objektum @type shader: C{Shader} """ if Config.getValue("render.shader") and isinstance(shader, Shader): self.__shader = shader
def setTexture(self, texture): """ Textúra hozzáadása az anyagmintához, ha engedélyezve vannak a C{bitmaptexture} a konfigurációban @param texture: Az anyagmintához kapcsolandó textúra objektum @type texture: C{Texture} """ if Config.getValue("render.bitmaptexture") and isinstance(texture, Texture): self.__texture = texture
def __init__(self): """ Viewport inicializálása """ self.__fov = Config.getValue("projection.fov") self.__ration = 1.0 self.__nearPlane = 0.05 self.__farPlane = 2000.0 self.__x = 0 self.__y = 0 self.__width = 1 self.__height = 1