57 lines
1.4 KiB
C++
57 lines
1.4 KiB
C++
#ifndef UNLIT_MATERIAL_PROVIDER
|
|
#define UNLIT_MATERIAL_PROVIDER
|
|
namespace polyvox {
|
|
class UnlitMaterialProvider : public MaterialProvider {
|
|
|
|
const Material* _m;
|
|
const Material* _ms[1];
|
|
|
|
public:
|
|
UnlitMaterialProvider(Engine* engine) {
|
|
_m = Material::Builder()
|
|
.package( UNLIT_OPAQUE_UNLIT_DATA, UNLIT_OPAQUE_UNLIT_SIZE)
|
|
.build(*engine);
|
|
if(_m) {
|
|
Log("YES");
|
|
} else {
|
|
Log("NO!");
|
|
}
|
|
_ms[0] = _m;
|
|
}
|
|
|
|
filament::MaterialInstance* createMaterialInstance(MaterialKey* config, UvMap* uvmap,
|
|
const char* label = "material", const char* extras = nullptr) {
|
|
MaterialInstance* d = (MaterialInstance*)_m->getDefaultInstance();
|
|
if(d) {
|
|
Log("YES");
|
|
} else {
|
|
Log("NO INSTANCE!");
|
|
}
|
|
return d;
|
|
}
|
|
|
|
/**
|
|
* Gets a weak reference to the array of cached materials.
|
|
*/
|
|
const filament::Material* const* getMaterials() const noexcept {
|
|
return _ms;
|
|
}
|
|
|
|
/**
|
|
* Gets the number of cached materials.
|
|
*/
|
|
size_t getMaterialsCount() const noexcept {
|
|
return (size_t)1;
|
|
}
|
|
|
|
void destroyMaterials() {
|
|
|
|
}
|
|
|
|
bool needsDummyData(filament::VertexAttribute attrib) const noexcept {
|
|
return true;
|
|
}
|
|
};
|
|
}
|
|
|
|
#endif |