#include #include "test_loader.h" #include "instruction.h" #include "program.h" #include "register_address.h" std::vector test_loader::XYZ() { std::vector XYZ; XYZ.push_back(SWIZZLE_X); XYZ.push_back(SWIZZLE_Y); XYZ.push_back(SWIZZLE_Z); return XYZ; } std::vector test_loader::make_register( register_type type, unsigned int index, std::vector swizzles) { std::vector new_register; std::vector::iterator it; for(it = swizzles.begin(); it < swizzles.end(); ++it) { new_register.push_back(register_address(type, index, *it)); } return new_register; } program * test_loader::load() { //XXX: This should go in parent constructor. m_program = new program(); m_program->add_instruction(new add_instruction( make_register(REGISTER_TYPE_TEMP, 0, XYZ()), make_register(REGISTER_TYPE_CONST, 0, XYZ()), make_register(REGISTER_TYPE_CONST, 0, XYZ()))); m_program->add_instruction(new add_instruction( make_register(REGISTER_TYPE_TEMP, 0, XYZ()), make_register(REGISTER_TYPE_TEMP, 0, XYZ()), make_register(REGISTER_TYPE_CONST, 0, XYZ()))); m_program->add_instruction(new add_instruction( make_register(REGISTER_TYPE_OUT, 0, XYZ()), make_register(REGISTER_TYPE_TEMP, 0, XYZ()), make_register(REGISTER_TYPE_TEMP, 0, XYZ()))); return m_program; }