Files
2025-11-17 10:28:09 +01:00

83 lines
1.3 KiB
C

#include "../int.h"
#include "../array.h"
#include "./renderPasses/renderPass.h"
#include "./vector.h"
#include "../classConfiguration.h"
reflect
class pipeline{
array * renderPasses = new array();
vector<int> * classIndices = new vector();
vector<int> * methodIndices = new vector();
addRenderPass( ... ) {
va_list args;
va_start( args, count );
int classIndex = datatypes[0];
this->classIndices->add( classIndex );
void * voidPointer = va_arg( args, void * );
int methodIndex = getMethodIndexByPropertyName( classIndex, "prepare" );
int renderMethodIndex = getMethodIndexByPropertyName( classIndex, "render" );
this->methodIndices->add( renderMethodIndex );
int classIndexTest = this->classIndices->get( 0 );
//printf("\n\n\n\n%i\n\n\n\n", classIndexTest);
callMethodOfClass( classIndex, methodIndex, voidPointer );
printf("\n");
va_end( args );
this->renderPasses->add( voidPointer );
}
render() {
array * renderPasses = this->renderPasses;
int renderPassCount = renderPasses->length();
for (int i = 0; i < renderPassCount; ++i)
{
int classIndex = this->classIndices->get( i );
void * voidPointer = renderPasses->get( i );
int methodIndex = this->methodIndices->get( i );
callMethodOfClass( classIndex, methodIndex, voidPointer );
}
}
}