Arb.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00027 #include "GlBackend.hpp"
00028 #include "Arb.hpp"
00029 #include "ArbCode.hpp"
00030
00031 namespace shgl {
00032
00033 using namespace SH;
00034
00035 ArbCodeStrategy::ArbCodeStrategy(int context)
00036 : m_context(context)
00037 {
00038 }
00039
00040 ArbCodeStrategy* ArbCodeStrategy::create(int context)
00041 {
00042 return new ArbCodeStrategy(context);
00043 }
00044
00045 ShBackendCodePtr ArbCodeStrategy::generate(const std::string& target,
00046 const ShProgramNodeCPtr& shader,
00047 TextureStrategy* textures)
00048 {
00049 std::string::size_type loc = target.rfind(':');
00050 std::string unit = (loc == std::string::npos ? target : target.substr(loc + 1));
00051 ArbCodePtr code = new ArbCode(shader, unit, textures);
00052 code->generate();
00053 return code;
00054 }
00055
00056 unsigned int arbTarget(const std::string& unit)
00057 {
00058 if (unit == "vertex") return GL_VERTEX_PROGRAM_ARB;
00059 if (unit == "fragment") return GL_FRAGMENT_PROGRAM_ARB;
00060 return 0;
00061 }
00062
00063 }
00064
Generated on Mon Oct 18 14:17:38 2004 for Sh by
1.3.7