+#include <msp/core/algorithm.h>
#include "resources.h"
#include "style.h"
namespace Msp {
namespace GLtk {
-Style::Style():
- font(0),
- font_size(0)
-{ }
-
const GL::Font &Style::get_font() const
{
if(!font)
return font_color[s];
}
-const Part *Style::get_part(const string &name) const
+const GL::Sampler &Style::get_sampler() const
{
- for(PartSeq::const_iterator i=parts.begin(); i!=parts.end(); ++i)
- if(i->get_name()==name)
- return &*i;
+ if(!sampler)
+ throw logic_error("!sampler");
+ return *sampler;
+}
- return 0;
+const Part *Style::find_part(const string &name) const
+{
+ auto i = find_if(parts, [&name](const Part &p){ return p.get_name()==name; });
+ return (i!=parts.end() ? &*i : nullptr);
}
bool Style::compare_states(State s1, State s2) const
if(c1.r!=c2.r || c1.g!=c2.g || c1.b!=c2.b)
return true;
- for(PartSeq::const_iterator i=parts.begin(); i!=parts.end(); ++i)
- if(i->get_graphic(s1)!=i->get_graphic(s2))
+ for(const Part &p: parts)
+ if(p.get_graphic(s1)!=p.get_graphic(s2))
return true;
return false;
obj.font = &get_collection().get_default_font();
obj.font_size = obj.font->get_native_size();
}
+ if(!obj.sampler)
+ obj.sampler = &get_collection().get<GL::Sampler>("linear_clamp.samp");
add("font", &Loader::font);
add("font_color", &Loader::font_color_normal);
add("font_size", &Style::font_size);
add("part", &Loader::part);
add("part", &Loader::unnamed_part);
+ add("sampler", &Style::sampler);
}
void Style::Loader::font(const string &n)