10ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen/* 20ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen * Copyright (C) 2011 The Android Open Source Project 30ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen * 40ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen * Licensed under the Apache License, Version 2.0 (the "License"); 50ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen * you may not use this file except in compliance with the License. 60ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen * You may obtain a copy of the License at 70ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen * 80ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen * http://www.apache.org/licenses/LICENSE-2.0 90ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen * 100ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen * Unless required by applicable law or agreed to in writing, software 110ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen * distributed under the License is distributed on an "AS IS" BASIS, 120ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen * See the License for the specific language governing permissions and 140ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen * limitations under the License. 150ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen */ 160ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen 170ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen#ifndef IMAGETESTHANDLER_H 180ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen#define IMAGETESTHANDLER_H 190ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen 200ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen#include "vec2.h" 210ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen#include "vec3.h" 220ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen 230ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chenclass ImageTestHandler{ 240ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen public: 250ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen ImageTestHandler() { 260ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen initDebugImage(); 270ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen } 280ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen ImageTestHandler(int debugHeight, int debugWidth) { 290ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen initDebugImage(debugHeight, debugWidth); 300ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen } 310ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen virtual ~ImageTestHandler() { delete[] mDebugOutput; } 320ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen 330ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen virtual void processData() {} 340ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen 350ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen int getDebugWidth() const { return mDebugWidth; } 360ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen int getDebugHeight() const { return mDebugHeight; } 370ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen const unsigned char* debug_output() const { return mDebugOutput; } 380ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen void copyDebugImage(int inputHeight, int inputWidth, 390ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen const unsigned char* inputImage); 400ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen 410ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen void drawPoint(const Vec2i &point, const Vec3i &color); 420ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen void drawPoint(int row, int column, const Vec3i &color); 430ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen void drawLine(int angle, int radius, const Vec3i &color); 440ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen 450ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen protected: 460ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen void clearDebugImage(); 470ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen 480ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen private: 490ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen void initDebugImage(); 500ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen void initDebugImage(int debugHeight, int debugWidth); 510ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen 520ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen unsigned char* mDebugOutput; 530ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen int mDebugWidth; 540ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen int mDebugHeight; 550ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen}; 560ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen 570ed3f71ac8a208f7bf311b9b2a4102e7cecbac57Christine Chen#endif 58