ArbLimits.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 "ArbLimits.hpp"
00028 #include "GlBackend.hpp"
00029 #include "Arb.hpp"
00030
00031 namespace shgl {
00032
00033 ArbLimits::ArbLimits(const std::string& target)
00034 {
00035 unsigned int arb_target = arbTarget(target);
00036
00037 m_instrs = (target == "gpu:vertex" ? 128 : 48);
00038 SH_GL_CHECK_ERROR(glGetProgramivARB(arb_target, GL_MAX_PROGRAM_INSTRUCTIONS_ARB,
00039 &m_instrs));
00040
00041
00042
00043
00044
00045 m_temps = (target == "gpu:vertex" ? 12 : 32);
00046 SH_GL_CHECK_ERROR(glGetProgramivARB(arb_target, GL_MAX_PROGRAM_TEMPORARIES_ARB,
00047 &m_temps));
00048
00049 m_attribs = (target == "gpu:vertex" ? 16 : 10);
00050 SH_GL_CHECK_ERROR(glGetProgramivARB(arb_target, GL_MAX_PROGRAM_ATTRIBS_ARB,
00051 &m_attribs));
00052
00053 m_params = (target == "gpu:vertex" ? 96 : 24);
00054 SH_GL_CHECK_ERROR(glGetProgramivARB(arb_target, GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB,
00055 &m_params));
00056
00057
00058 m_texs = (target == "gpu:vertex" ? 0 : 24);
00059 if (target == "gpu:vertex") {
00060 SH_GL_CHECK_ERROR(glGetProgramivARB(arb_target, GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB,
00061 &m_texs));
00062 }
00063 }
00064
00065 }
Generated on Mon Oct 18 14:17:38 2004 for Sh by
1.3.7