Einzelnen Beitrag anzeigen

Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#475

Re: Andorra 2D [Ver. 0.30 STABLE, 04.01.08]

  Alt 20. Feb 2008, 05:07
Zitat von igel457:
Das gute an meinem Plugin-DLL-Konzept ist ja schließlich, dass man für alle beliebigen Renderingsysteme ein neues Plugin schreiben kann. Ist das bisherige OpenGL-Plugin nicht verwendbar, so kann man ja "einfach" ein OpenGL ES Plugin schreiben.
Genau! Das war auch meine Absicht. Nur muss ich dazu erstmal wieder in die OpenGL-Materie finden.

edit:
Hmmm ich merke, das ich nicht wirklich OGL-fähig bin.

Ich hab als Grundlage dein OpenGL-Plugin genommen. Da gibts in der TOGLMesh.Draw Prozedur folgenden Code:
Delphi-Quellcode:
if FIndices = nil then
      begin
        glBegin(mode);
        for i := 0 to high(FVertices) do
        begin
          with FVertices[i] do
          begin
            glTexCoord2f(Texture.x,Texture.y);
            glColor4f(Color.r / 255, Color.g / 255, Color.b / 255, Color.a / 255);
            glVertex3f(Position.x,Position.y,Position.z);
          end;
        end;
        glEnd;
      end
      else
      begin
   glEnableClientState(GL_COLOR_ARRAY);
        glEnableClientState(GL_NORMAL_ARRAY);
        glEnableClientState(GL_TEXTURE_COORD_ARRAY);
        glEnableClientState(GL_VERTEX_ARRAY);

        glColorPointer(4,GL_UNSIGNED_BYTE,0,@FColors[0]);
        glTexCoordPointer(2,GL_FLOAT,0,@FTexCoords[0]);
        glNormalPointer(GL_FLOAT,0,@FNormals[0]);
        glVertexPointer(3,GL_FLOAT,0,@FPositions[0]);

        glDrawElements(mode,high(FIndices)+1,GL_UNSIGNED_SHORT,@FIndices[0]);

   glDisableClientState(GL_COLOR_ARRAY);
        glDisableClientState(GL_NORMAL_ARRAY);
        glDisableClientState(GL_TEXTURE_COORD_ARRAY);
        glDisableClientState(GL_VERTEX_ARRAY);
      end;
Könnte man das nicht irgendwie zusammenschmeißen, das immer der Code aus dem else-Zweig genutzt wird? Das wäre mir ganz recht, weil alle diese Funktionen (aus dem Else-Teil) Teil von OpenGL ES sind.
Wäre schön wenn du mir einen Tip geben könntest.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat