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