// // Copyright © 2012 Linaro Limited // // This file is part of the glmark2 OpenGL (ES) 2.0 benchmark. // // glmark2 is free software: you can redistribute it and/or modify it under the // terms of the GNU General Public License as published by the Free Software // Foundation, either version 3 of the License, or (at your option) any later // version. // // glmark2 is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more // details. // // You should have received a copy of the GNU General Public License along with // glmark2. If not, see <http://www.gnu.org/licenses/>. // // Authors: // Aleksandar Rodic - Creator and WebGL implementation // Jesse Barker - glmark2 port // #include <string> #include <fstream> #include <memory> #include <iomanip> #include "options.h" #include "scene.h" #include "scene-jellyfish.h" #include "log.h" #include "util.h" #include "texture.h" #include "shader-source.h" SceneJellyfish::SceneJellyfish(Canvas& canvas) : … { … } SceneJellyfish::~SceneJellyfish() { … } bool SceneJellyfish::load() { … } void SceneJellyfish::unload() { … } bool SceneJellyfish::setup() { … } void SceneJellyfish::teardown() { … } void SceneJellyfish::update() { … } void SceneJellyfish::draw() { … } Scene::ValidationResult SceneJellyfish::validate() { … } // // JellyfishPrivate implementation // mat4; vec3; vec2; string; vector; bool GradientRenderer::init() { … } void GradientRenderer::cleanup() { … } void GradientRenderer::draw() { … } //! // Parse index values from an OBJ file. // // @param source the source line to parse // @param idx the unsigned short to populate // static void obj_get_index(const string& source, unsigned short& idx) { … } //! // Parse vec3 values from an OBJ file. // // @param source the source line to parse // @param v the vec3 to populate // static void obj_get_values(const string& source, vec3& v) { … } // Custom OBJ loader. // // To support the jellyfish model, some amendments to the OBJ format are // necessary. In particular, a vertex color attribute is required, and // it contains an index list rather than a face list. bool JellyfishPrivate::load_obj(const std::string &filename) { … } JellyfishPrivate::JellyfishPrivate() : … { … } JellyfishPrivate::~JellyfishPrivate() { … } bool JellyfishPrivate::initialize() { … } void JellyfishPrivate::update_viewport(const vec2& vp) { … } void JellyfishPrivate::update_time() { … } void JellyfishPrivate::cleanup() { … } void JellyfishPrivate::draw() { … }