From 24950f60242f983fb8b2340d0ea8e5578befc9fb Mon Sep 17 00:00:00 2001 From: Aaron Griffith Date: Tue, 22 Mar 2011 23:09:12 -0400 Subject: [PATCH] moved rendermode_normal into a separate file, like rendermode_lighting --- setup.py | 3 ++- src/rendermode-normal.c | 56 +++++++++++++++++++++++++++++++++++++++++ src/rendermodes.c | 40 +---------------------------- 3 files changed, 59 insertions(+), 40 deletions(-) create mode 100644 src/rendermode-normal.c diff --git a/setup.py b/setup.py index 5777aa8..e8f0503 100644 --- a/setup.py +++ b/setup.py @@ -44,7 +44,8 @@ except AttributeError: numpy_include = numpy.get_numpy_include() -c_overviewer_files = ['src/main.c', 'src/composite.c', 'src/iterate.c', 'src/rendermodes.c', 'src/rendermode-lighting.c'] +c_overviewer_files = ['src/main.c', 'src/composite.c', 'src/iterate.c'] +c_overviewer_files += ['src/rendermodes.c', 'src/rendermode-normal.c', 'src/rendermode-lighting.c'] setup_kwargs['ext_modules'].append(Extension('c_overviewer', c_overviewer_files, include_dirs=['.', numpy_include], extra_link_args=["/MANIFEST"] if platform.system() == "Windows" else [])) # tell build_ext to build the extension in-place # (NOT in build/) diff --git a/src/rendermode-normal.c b/src/rendermode-normal.c new file mode 100644 index 0000000..ca1b9c5 --- /dev/null +++ b/src/rendermode-normal.c @@ -0,0 +1,56 @@ +/* + * This file is part of the Minecraft Overviewer. + * + * Minecraft Overviewer 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. + * + * Minecraft Overviewer 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 the Overviewer. If not, see . + */ + +#include "overviewer.h" + +static int +rendermode_normal_start(void *data, RenderState *state) { + /* do nothing */ + return 0; +} + +static void +rendermode_normal_finish(void *data, RenderState *state) { + /* do nothing */ +} + +static int +rendermode_normal_occluded(void *data, RenderState *state) { + int x = state->x, y = state->y, z = state->z; + + if ( (x != 0) && (y != 15) && (z != 127) && + !is_transparent(getArrayByte3D(state->blocks, x-1, y, z)) && + !is_transparent(getArrayByte3D(state->blocks, x, y, z+1)) && + !is_transparent(getArrayByte3D(state->blocks, x, y+1, z))) { + return 1; + } + + return 0; +} + +static void +rendermode_normal_draw(void *data, RenderState *state, PyObject *src, PyObject *mask) { + alpha_over(state->img, src, mask, state->imgx, state->imgy, 0, 0); +} + +RenderModeInterface rendermode_normal = { + sizeof(RenderModeNormal), + rendermode_normal_start, + rendermode_normal_finish, + rendermode_normal_occluded, + rendermode_normal_draw, +}; diff --git a/src/rendermodes.c b/src/rendermodes.c index c4675e5..2141d99 100644 --- a/src/rendermodes.c +++ b/src/rendermodes.c @@ -17,45 +17,7 @@ #include "overviewer.h" -static int -rendermode_normal_start(void *data, RenderState *state) { - /* do nothing */ - return 0; -} - -static void -rendermode_normal_finish(void *data, RenderState *state) { - /* do nothing */ -} - -static int -rendermode_normal_occluded(void *data, RenderState *state) { - int x = state->x, y = state->y, z = state->z; - - if ( (x != 0) && (y != 15) && (z != 127) && - !is_transparent(getArrayByte3D(state->blocks, x-1, y, z)) && - !is_transparent(getArrayByte3D(state->blocks, x, y, z+1)) && - !is_transparent(getArrayByte3D(state->blocks, x, y+1, z))) { - return 1; - } - - return 0; -} - -static void -rendermode_normal_draw(void *data, RenderState *state, PyObject *src, PyObject *mask) { - alpha_over(state->img, src, mask, state->imgx, state->imgy, 0, 0); -} - -RenderModeInterface rendermode_normal = { - sizeof(RenderModeNormal), - rendermode_normal_start, - rendermode_normal_finish, - rendermode_normal_occluded, - rendermode_normal_draw, -}; - -/* putting it all together */ +/* decides which render mode to use */ RenderModeInterface *get_render_mode(RenderState *state) { /* default: normal */ RenderModeInterface *iface = &rendermode_normal;