Blame c++/contourgl/test.h

Ivan Mahonin 93cbac
/*
Ivan Mahonin 93cbac
    ......... 2015 Ivan Mahonin
Ivan Mahonin 93cbac
Ivan Mahonin 93cbac
    This program is free software: you can redistribute it and/or modify
Ivan Mahonin 93cbac
    it under the terms of the GNU General Public License as published by
Ivan Mahonin 93cbac
    the Free Software Foundation, either version 3 of the License, or
Ivan Mahonin 93cbac
    (at your option) any later version.
Ivan Mahonin 93cbac
Ivan Mahonin 93cbac
    This program is distributed in the hope that it will be useful,
Ivan Mahonin 93cbac
    but WITHOUT ANY WARRANTY; without even the implied warranty of
Ivan Mahonin 93cbac
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Ivan Mahonin 93cbac
    GNU General Public License for more details.
Ivan Mahonin 93cbac
Ivan Mahonin 93cbac
    You should have received a copy of the GNU General Public License
Ivan Mahonin 93cbac
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
Ivan Mahonin 93cbac
*/
Ivan Mahonin 93cbac
Ivan Mahonin 93cbac
#ifndef _TEST_H_
Ivan Mahonin 93cbac
#define _TEST_H_
Ivan Mahonin 93cbac
Ivan Mahonin 93cbac
#include <ctime>
Ivan Mahonin 93cbac
#include <string>
Ivan Mahonin 93cbac
Ivan Mahonin 93cbac
class Surface;
Ivan Mahonin 93cbac
Ivan Mahonin a80036
clock_t get_clock();
Ivan Mahonin a80036
Ivan Mahonin 93cbac
class Test {
Ivan Mahonin 93cbac
public:
Ivan Mahonin 93cbac
	class Wrapper {
Ivan Mahonin 93cbac
	private:
Ivan Mahonin 93cbac
		std::string filename;
Ivan Mahonin 93cbac
		Surface *surface;
Ivan Mahonin 6e407d
		bool tga;
Ivan Mahonin 93cbac
		clock_t t;
Ivan Mahonin 93cbac
Ivan Mahonin 6e407d
		Wrapper(const Wrapper&): surface(), tga(), t() { }
Ivan Mahonin 93cbac
		Wrapper& operator= (const Wrapper&) { return *this; }
Ivan Mahonin 93cbac
	public:
Ivan Mahonin a80036
		Wrapper(const std::string &filename);
Ivan Mahonin 6e407d
		Wrapper(const std::string &filename, Surface &surface);
Ivan Mahonin 93cbac
		~Wrapper();
Ivan Mahonin 93cbac
	};
Ivan Mahonin 93cbac
Ivan Mahonin 93cbac
private:
Ivan Mahonin 93cbac
	class Helper;
Ivan Mahonin 93cbac
Ivan Mahonin 93cbac
public:
Ivan Mahonin 7c6b57
	static void check_gl(const std::string &s = std::string());
Ivan Mahonin 7c6b57
Ivan Mahonin 93cbac
	static void test1();
Ivan Mahonin 93cbac
	static void test2();
Ivan Mahonin 93cbac
	static void test3();
Ivan Mahonin 93cbac
};
Ivan Mahonin 93cbac
Ivan Mahonin 93cbac
#endif