1*d86ed7fbStbbdev /* 2*d86ed7fbStbbdev Copyright (c) 2005-2020 Intel Corporation 3*d86ed7fbStbbdev 4*d86ed7fbStbbdev Licensed under the Apache License, Version 2.0 (the "License"); 5*d86ed7fbStbbdev you may not use this file except in compliance with the License. 6*d86ed7fbStbbdev You may obtain a copy of the License at 7*d86ed7fbStbbdev 8*d86ed7fbStbbdev http://www.apache.org/licenses/LICENSE-2.0 9*d86ed7fbStbbdev 10*d86ed7fbStbbdev Unless required by applicable law or agreed to in writing, software 11*d86ed7fbStbbdev distributed under the License is distributed on an "AS IS" BASIS, 12*d86ed7fbStbbdev WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*d86ed7fbStbbdev See the License for the specific language governing permissions and 14*d86ed7fbStbbdev limitations under the License. 15*d86ed7fbStbbdev */ 16*d86ed7fbStbbdev 17*d86ed7fbStbbdev /* 18*d86ed7fbStbbdev The original source for this example is 19*d86ed7fbStbbdev Copyright (c) 1994-2008 John E. Stone 20*d86ed7fbStbbdev All rights reserved. 21*d86ed7fbStbbdev 22*d86ed7fbStbbdev Redistribution and use in source and binary forms, with or without 23*d86ed7fbStbbdev modification, are permitted provided that the following conditions 24*d86ed7fbStbbdev are met: 25*d86ed7fbStbbdev 1. Redistributions of source code must retain the above copyright 26*d86ed7fbStbbdev notice, this list of conditions and the following disclaimer. 27*d86ed7fbStbbdev 2. Redistributions in binary form must reproduce the above copyright 28*d86ed7fbStbbdev notice, this list of conditions and the following disclaimer in the 29*d86ed7fbStbbdev documentation and/or other materials provided with the distribution. 30*d86ed7fbStbbdev 3. The name of the author may not be used to endorse or promote products 31*d86ed7fbStbbdev derived from this software without specific prior written permission. 32*d86ed7fbStbbdev 33*d86ed7fbStbbdev THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 34*d86ed7fbStbbdev OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 35*d86ed7fbStbbdev WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 36*d86ed7fbStbbdev ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 37*d86ed7fbStbbdev DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 38*d86ed7fbStbbdev DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 39*d86ed7fbStbbdev OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 40*d86ed7fbStbbdev HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 41*d86ed7fbStbbdev LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 42*d86ed7fbStbbdev OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 43*d86ed7fbStbbdev SUCH DAMAGE. 44*d86ed7fbStbbdev */ 45*d86ed7fbStbbdev 46*d86ed7fbStbbdev /* 47*d86ed7fbStbbdev * render.cpp - This file contains the main program and driver for the raytracer. 48*d86ed7fbStbbdev */ 49*d86ed7fbStbbdev 50*d86ed7fbStbbdev #include "machine.hpp" 51*d86ed7fbStbbdev #include "types.hpp" 52*d86ed7fbStbbdev #include "macros.hpp" 53*d86ed7fbStbbdev #include "tgafile.hpp" 54*d86ed7fbStbbdev #include "trace.hpp" 55*d86ed7fbStbbdev #include "render.hpp" 56*d86ed7fbStbbdev #include "util.hpp" 57*d86ed7fbStbbdev #include "light.hpp" 58*d86ed7fbStbbdev #include "global.hpp" 59*d86ed7fbStbbdev #include "ui.hpp" 60*d86ed7fbStbbdev #include "tachyon_video.hpp" 61*d86ed7fbStbbdev #include "objbound.hpp" 62*d86ed7fbStbbdev #include "grid.hpp" 63*d86ed7fbStbbdev 64*d86ed7fbStbbdev /* how many pieces to divide each scanline into */ 65*d86ed7fbStbbdev #define NUMHORZDIV 1 66*d86ed7fbStbbdev 67*d86ed7fbStbbdev void renderscene(scenedef scene) { 68*d86ed7fbStbbdev //char msgtxt[2048]; 69*d86ed7fbStbbdev //void * outfile; 70*d86ed7fbStbbdev /* Grid based accerlation scheme */ 71*d86ed7fbStbbdev if (scene.boundmode == RT_BOUNDING_ENABLED) 72*d86ed7fbStbbdev engrid_scene(&rootobj); /* grid */ 73*d86ed7fbStbbdev /* Not used now 74*d86ed7fbStbbdev if (scene.verbosemode) { 75*d86ed7fbStbbdev sprintf(msgtxt, "Opening %s for output.", scene.outfilename); 76*d86ed7fbStbbdev rt_ui_message(MSG_0, msgtxt); 77*d86ed7fbStbbdev } 78*d86ed7fbStbbdev 79*d86ed7fbStbbdev createtgafile(scene.outfilename, 80*d86ed7fbStbbdev (unsigned short) scene.hres, 81*d86ed7fbStbbdev (unsigned short) scene.vres); 82*d86ed7fbStbbdev outfile = opentgafile(scene.outfilename); 83*d86ed7fbStbbdev */ 84*d86ed7fbStbbdev 85*d86ed7fbStbbdev trace_region(scene, 0 /*outfile*/, 0, 0, scene.hres, scene.vres); 86*d86ed7fbStbbdev //fclose((FILE *)outfile); 87*d86ed7fbStbbdev } /* end of renderscene() */ 88