Skip to content

Commit

Permalink
Refactor|Renderer: Restructured texture => surface projection
Browse files Browse the repository at this point in the history
Revised the high-level model for the projection of textures onto
world Surfaces, making use of C++11 lambdas to improve SoC and
better locality. RenderSystem now has ownership of the projected
texture lists.

Todo for later: There is no need to expose the projected texture
list instances to users of RenderSystem.
  • Loading branch information
danij-deng committed Apr 30, 2015
1 parent 1ea4eab commit 1e23c59
Show file tree
Hide file tree
Showing 23 changed files with 1,098 additions and 1,444 deletions.
7 changes: 1 addition & 6 deletions doomsday/client/client.pro
Expand Up @@ -291,18 +291,16 @@ DENG_HEADERS += \
include/render/materialcontext.h \
include/render/mobjanimator.h \
include/render/modelrenderer.h \
include/render/projector.h \
include/render/projectedtexturedata.h \
include/render/r_draw.h \
include/render/r_main.h \
include/render/r_things.h \
include/render/rend_dynlight.h \
include/render/rend_fakeradio.h \
include/render/rend_font.h \
include/render/rend_halo.h \
include/render/rend_main.h \
include/render/rend_model.h \
include/render/rend_particle.h \
include/render/rend_shadow.h \
include/render/rendpoly.h \
include/render/rendersystem.h \
include/render/shadowedge.h \
Expand Down Expand Up @@ -622,19 +620,16 @@ SOURCES += \
src/render/lumobj.cpp \
src/render/mobjanimator.cpp \
src/render/modelrenderer.cpp \
src/render/projector.cpp \
src/render/r_draw.cpp \
src/render/r_fakeradio.cpp \
src/render/r_main.cpp \
src/render/r_things.cpp \
src/render/rend_dynlight.cpp \
src/render/rend_fakeradio.cpp \
src/render/rend_font.cpp \
src/render/rend_halo.cpp \
src/render/rend_main.cpp \
src/render/rend_model.cpp \
src/render/rend_particle.cpp \
src/render/rend_shadow.cpp \
src/render/rendpoly.cpp \
src/render/rendersystem.cpp \
src/render/shadowedge.cpp \
Expand Down
3 changes: 0 additions & 3 deletions doomsday/client/include/de_render.h
Expand Up @@ -25,18 +25,15 @@
#ifdef __CLIENT__
#include "render/viewports.h"
#include "render/lightgrid.h"
#include "render/projector.h"
#include "render/r_draw.h"
#include "render/r_main.h"
#include "render/r_things.h"
#include "render/rend_halo.h"
#include "render/rend_particle.h"
#include "render/rend_main.h"
#include "render/rend_model.h"
#include "render/rend_shadow.h"
#include "render/rend_fakeradio.h"
#include "render/rend_font.h"
#include "render/rend_dynlight.h"
#include "render/rendpoly.h"
#include "render/billboard.h"
#include "render/cameralensfx.h"
Expand Down
37 changes: 37 additions & 0 deletions doomsday/client/include/render/projectedtexturedata.h
@@ -0,0 +1,37 @@
/** @file projectedtexturedata.h Projected texture data.
*
* @authors Copyright © 2003-2013 Jaakko Keränen <jaakko.keranen@iki.fi>
* @authors Copyright © 2006-2015 Daniel Swanson <danij@dengine.net>
*
* @par License
* GPL: http://www.gnu.org/licenses/gpl.html
*
* <small>This program 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 2 of the License, or (at your
* option) any later version. This program 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 this program; if not, see:
* http://www.gnu.org/licenses</small>
*/

#ifndef CLIENT_RENDER_PROJECTEDTEXTUREDATA_H
#define CLIENT_RENDER_PROJECTEDTEXTUREDATA_H

#include <de/Vector>
#include "api_gl.h" // DGLuint

/**
* POD for a texture => surface projection.
*/
struct ProjectedTextureData
{
DGLuint texture;
de::Vector2f topLeft;
de::Vector2f bottomRight;
de::Vector4f color;
};

#endif // CLIENT_RENDER_PROJECTEDTEXTUREDATA_H
152 changes: 0 additions & 152 deletions doomsday/client/include/render/projector.h

This file was deleted.

51 changes: 0 additions & 51 deletions doomsday/client/include/render/rend_dynlight.h

This file was deleted.

3 changes: 2 additions & 1 deletion doomsday/client/include/render/rend_main.h
Expand Up @@ -242,8 +242,9 @@ Material *Rend_ChooseMapSurfaceMaterial(Surface const &surface);
de::MaterialVariantSpec const &Rend_MapSurfaceMaterialSpec();
de::MaterialVariantSpec const &Rend_MapSurfaceMaterialSpec(int wrapS, int wrapT);

TextureVariantSpec const &Rend_MapSurfaceShinyTextureSpec();
TextureVariantSpec const &Rend_MapSurfaceLightmapTextureSpec();

TextureVariantSpec const &Rend_MapSurfaceShinyTextureSpec();
TextureVariantSpec const &Rend_MapSurfaceShinyMaskTextureSpec();

void R_DivVerts(de::Vector3f *dst, de::Vector3f const *src,
Expand Down
47 changes: 0 additions & 47 deletions doomsday/client/include/render/rend_shadow.h

This file was deleted.

0 comments on commit 1e23c59

Please sign in to comment.