private bool CompleteParamSource(String paramName,
                GpuProgramParameters.GpuConstantDefinitionMap vertexConstantDefs, 
                GpuProgramParameters.GpuConstantDefinitionMap geometryConstantDefs,
                GpuProgramParameters.GpuConstantDefinitionMap fragmentConstantDefs,
                GLSLLinkProgram.UniformReference refToUpdate)
        {
            GpuProgramParameters.GpuConstantDefinition parami;
            if (vertexConstantDefs != null)
            {

                if ( vertexConstantDefs.TryGetValue( paramName, out parami ) )
                {
                    refToUpdate.SourceProgType = GpuProgramType.Vertex;
                    refToUpdate.ConstantDef = parami;
                    return true;
                }
            }

            if (geometryConstantDefs != null)
            {

                if (geometryConstantDefs.TryGetValue(paramName, out parami))
                {
                    refToUpdate.SourceProgType = GpuProgramType.Geometry;
                    refToUpdate.ConstantDef = parami;
                    return true;
                }
            }

            if (fragmentConstantDefs != null)
            {

                if (fragmentConstantDefs.TryGetValue(paramName, out parami))
                {
                    refToUpdate.SourceProgType = GpuProgramType.Fragment;
                    refToUpdate.ConstantDef = parami;
                    return true;
                }
            }

            return false;
        }