/** * \file program.cpp * \brief IProgram * \date 2013-09-07 15:00GMT * \author Jan Boon (Kaetemi) * IProgram */ /* * Copyright (C) 2013 by authors * * This file is part of NL3D. * NL3D is free software: you can redistribute it and/or modify it * under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * NL3D is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General * Public License for more details. * * You should have received a copy of the GNU Affero General Public * License along with NL3D. If not, see * . */ #include #include // STL includes // NeL includes // #include #include // Project includes #include using namespace std; // using namespace NLMISC; namespace NL3D { // *************************************************************************** IProgramDrvInfos::IProgramDrvInfos(IDriver *drv, ItGPUPrgDrvInfoPtrList it) { _Driver = drv; _DriverIterator = it; } // *************************************************************************** IProgramDrvInfos::~IProgramDrvInfos () { _Driver->removeGPUPrgDrvInfoPtr(_DriverIterator); } // *************************************************************************** IProgram::IProgram() { } // *************************************************************************** IProgram::~IProgram() { // Must kill the drv mirror of this program. m_DrvInfo.kill(); } const char *CProgramIndex::Names[NUM_UNIFORMS] = { "modelView", "modelViewInverse", "modelViewTranspose", "modelViewInverseTranspose", "projection", "projectionInverse", "projectionTranspose", "projectionInverseTranspose", "modelViewProjection", "modelViewProjectionInverse", "modelViewProjectionTranspose", "modelViewProjectionInverseTranspose", "fog", }; void IProgram::buildInfo(CSource *source) { // nlassert(!m_Source); // VALID: When deleting driver and creating new one. m_Source = source; // Fill index cache for (int i = 0; i < CProgramIndex::NUM_UNIFORMS; ++i) { m_Index.Indices[i] = getUniformIndex(m_Index.Names[i]); } buildInfo(); } void IProgram::buildInfo() { } } /* namespace NL3D */ /* end of file */