File: removedalphafunc.cpp

package info (click to toggle)
openmw 0.50.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 37,076 kB
  • sloc: cpp: 380,958; xml: 2,192; sh: 1,449; python: 911; makefile: 26; javascript: 5
file content (20 lines) | stat: -rw-r--r-- 653 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "removedalphafunc.hpp"

#include <cassert>

#include <osg/State>

namespace Shader
{
    std::array<osg::ref_ptr<RemovedAlphaFunc>, GL_ALWAYS - GL_NEVER + 1> RemovedAlphaFunc::sInstances{ nullptr, nullptr,
        nullptr, nullptr, nullptr, nullptr, nullptr, nullptr };

    osg::ref_ptr<RemovedAlphaFunc> RemovedAlphaFunc::getInstance(GLenum func)
    {
        assert(func >= GL_NEVER && func <= GL_ALWAYS);
        if (!sInstances[func - GL_NEVER])
            sInstances[func - GL_NEVER]
                = new RemovedAlphaFunc(static_cast<osg::AlphaFunc::ComparisonFunction>(func), 1.0);
        return sInstances[func - GL_NEVER];
    }
}