Example #1
0
    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)
Example #2
0
    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ő
Example #3
0
    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)
Example #4
0
 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
Example #5
0
    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_()
Example #6
0
    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
Example #7
0
    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
Example #8
0
 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