Implement default programs and implement defaults and parents for imports.
diff --git a/rsContext.cpp b/rsContext.cpp
index c466f46..7248ecc 100644
--- a/rsContext.cpp
+++ b/rsContext.cpp
@@ -119,6 +119,14 @@
rsc->mServerReturns.init(128);
rsc->initEGL();
+
+ rsc->mStateVertex.init(rsc, rsc->mWidth, rsc->mHeight);
+ rsc->setVertex(NULL);
+ rsc->mStateFragment.init(rsc, rsc->mWidth, rsc->mHeight);
+ rsc->setFragment(NULL);
+ rsc->mStateFragmentStore.init(rsc, rsc->mWidth, rsc->mHeight);
+ rsc->setFragmentStore(NULL);
+
rsc->mRunning = true;
bool mDraw = true;
while (!rsc->mExit) {
@@ -212,20 +220,32 @@
void Context::setFragmentStore(ProgramFragmentStore *pfs)
{
- mFragmentStore.set(pfs);
- pfs->setupGL();
+ if (pfs == NULL) {
+ mFragmentStore.set(mStateFragmentStore.mDefault);
+ } else {
+ mFragmentStore.set(pfs);
+ }
+ mFragmentStore->setupGL();
}
void Context::setFragment(ProgramFragment *pf)
{
- mFragment.set(pf);
- pf->setupGL();
+ if (pf == NULL) {
+ mFragment.set(mStateFragment.mDefault);
+ } else {
+ mFragment.set(pf);
+ }
+ mFragment->setupGL();
}
void Context::setVertex(ProgramVertex *pv)
{
- mVertex.set(pv);
- pv->setupGL();
+ if (pv == NULL) {
+ mVertex.set(mStateVertex.mDefault);
+ } else {
+ mVertex.set(pv);
+ }
+ mVertex->setupGL();
}
void Context::assignName(ObjectBase *obj, const char *name, uint32_t len)