binds...
	* shift + m3: apply texture name and alignment to selected primitives and faces (m3 was inconsistent + often required quite deep planning)
	* ctrl + shift + m3: also project tex from face to selection

misc...
	* lazy cursor updates in clipper mode
	* update cursor immediately on clipper mode toggles
	* fixes and optimizations of entity names rendering; for instance: don't prerender textures for unneeded names

	FBO overlay fixes
This commit is contained in:
Garux
2017-08-02 09:53:07 +03:00
parent e14027e117
commit 6eee961fcc
18 changed files with 239 additions and 131 deletions

View File

@@ -69,6 +69,8 @@ inline void PointVertexArray_testSelect( PointVertex* first, std::size_t count,
);
}
const char EXCLUDE_NAME[] = "worldspawn";
class Doom3Group :
public Bounded,
public Snappable
@@ -260,7 +262,7 @@ Doom3Group( EntityClass* eclass, scene::Node& node, const Callback& transformCha
m_nameKeys( m_entity ),
m_funcStaticOrigin( m_traverse, m_origin ),
m_name_origin( g_vector3_identity ),
m_renderName( m_named, m_name_origin ),
m_renderName( m_named, m_name_origin, EXCLUDE_NAME ),
m_skin( SkinChangedCaller( *this ) ),
m_curveNURBS( boundsChanged ),
m_curveCatmullRom( boundsChanged ),
@@ -279,7 +281,7 @@ Doom3Group( const Doom3Group& other, scene::Node& node, const Callback& transfor
m_nameKeys( m_entity ),
m_funcStaticOrigin( m_traverse, m_origin ),
m_name_origin( g_vector3_identity ),
m_renderName( m_named, m_name_origin ),
m_renderName( m_named, m_name_origin, EXCLUDE_NAME ),
m_skin( SkinChangedCaller( *this ) ),
m_curveNURBS( boundsChanged ),
m_curveCatmullRom( boundsChanged ),
@@ -363,13 +365,14 @@ void renderSolid( Renderer& renderer, const VolumeTest& volume, const Matrix4& l
renderer.addRenderable( m_curveCatmullRom.m_renderCurve, localToWorld );
}
if ( selected || childSelected || ( g_showNames && ( volume.fill() || aabb_fits_view( childBounds, volume.GetModelview(), volume.GetViewport(), g_showNamesRatio ) ) ) ) {
if ( m_renderName.excluded_not()
&& ( selected || childSelected || ( g_showNames && ( volume.fill() || aabb_fits_view( childBounds, volume.GetModelview(), volume.GetViewport(), g_showNamesRatio ) ) ) ) ) {
// draw models as usual
if ( !isModel() ) {
// don't draw the name for worldspawn
if ( !strcmp( m_entity.getEntityClass().name(), "worldspawn" ) ) {
return;
}
// if ( !strcmp( m_entity.getEntityClass().name(), "worldspawn" ) ) {
// return;
// }
// place name in the middle of the "children cloud"
m_name_origin = childBounds.origin;