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.