mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
fix dxgsg9 shader support with new PandaSE stuff
This commit is contained in:
parent
fba184180e
commit
aa7c806ff4
@ -330,6 +330,37 @@ issue_parameters(GSG *gsg, int altered)
|
|||||||
{
|
{
|
||||||
#ifdef HAVE_CG
|
#ifdef HAVE_CG
|
||||||
if (_cg_context) {
|
if (_cg_context) {
|
||||||
|
|
||||||
|
// Iterate through _ptr parameters
|
||||||
|
for (int i=0; i<(int)_shader->_ptr_spec.size(); i++) {
|
||||||
|
if(altered & (_shader->_ptr_spec[i]._dep[0] | _shader->_ptr_spec[i]._dep[1])){
|
||||||
|
#ifdef HAVE_CG
|
||||||
|
const Shader::ShaderPtrSpec& _ptr = _shader->_ptr_spec[i];
|
||||||
|
Shader::ShaderPtrData* _ptr_data =
|
||||||
|
const_cast< Shader::ShaderPtrData*>(gsg->fetch_ptr_parameter(_ptr));
|
||||||
|
|
||||||
|
if (_ptr_data == NULL){ //the input is not contained in ShaderPtrData
|
||||||
|
release_resources();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
CGparameter p = _cg_parameter_map[_ptr._id._seqno];
|
||||||
|
|
||||||
|
switch(_ptr_data->_type) {
|
||||||
|
case Shader::SPT_float:
|
||||||
|
cgD3D9SetUniform(p, (float*)_ptr_data->_ptr);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
dxgsg9_cat.error()
|
||||||
|
<< _ptr._id._name << ":" << "unrecognized parameter type\n";
|
||||||
|
release_resources();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
for (int i=0; i<(int)_shader->_mat_spec.size(); i++) {
|
for (int i=0; i<(int)_shader->_mat_spec.size(); i++) {
|
||||||
if (altered & (_shader->_mat_spec[i]._dep[0] | _shader->_mat_spec[i]._dep[1])) {
|
if (altered & (_shader->_mat_spec[i]._dep[0] | _shader->_mat_spec[i]._dep[1])) {
|
||||||
CGparameter p = _cg_parameter_map[_shader->_mat_spec[i]._id._seqno];
|
CGparameter p = _cg_parameter_map[_shader->_mat_spec[i]._id._seqno];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user