diff --git a/doc/Makefile b/doc/Makefile index c64ad654..41c41ab1 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -1,2 +1,7 @@ all: ./gendoc.py + +clean: + $(RM) main.pdf + $(RM) plugins_generated.tex + $(RM) *.aux main.bbl main.blg main.log main.out main.toc diff --git a/doc/gendoc.py b/doc/gendoc.py index b7f23123..d83aed88 100755 --- a/doc/gendoc.py +++ b/doc/gendoc.py @@ -1,6 +1,6 @@ -#! /usr/bin/python -# -# This script walks through all plugin files and +#!/usr/bin/env python +# +# This script walks through all plugin files and # extracts documentation that should go into the # reference manual @@ -61,34 +61,40 @@ def process(path, target): for entry in ordering: extract(target, entry[1]) -os.chdir(os.path.dirname(__file__)) -f = open('plugins_generated.tex', 'w') -f.write('\input{section_shapes}\n') -process('../src/shapes', f) -f.write('\input{section_bsdf}\n') -process('../src/bsdfs', f) -f.write('\input{section_textures}\n') -process('../src/textures', f) -f.write('\input{section_subsurface}\n') -process('../src/subsurface', f) -f.write('\input{section_media}\n') -process('../src/medium', f) -f.write('\input{section_phase}\n') -process('../src/phase', f) -f.write('\input{section_volumes}\n') -process('../src/volume', f) -f.write('\input{section_emitters}\n') -process('../src/emitters', f) -f.write('\input{section_sensors}\n') -process('../src/sensors', f) -f.write('\input{section_integrators}\n') -process('../src/integrators', f) -f.write('\input{section_samplers}\n') -process('../src/samplers', f) -f.write('\input{section_films}\n') -process('../src/films', f) -f.write('\input{section_rfilters}\n') -f.close() -os.system('bibtex main.aux') -os.system('pdflatex main.tex') -#os.system('pdflatex main.tex | grep -i warning | grep -v "Package \(typearea\|hyperref\)"') +def process_src(target, src_subdir, section=None): + if section is None: + section = "section_" + src_subdir + target.write('\input{{{0}}}\n'.format(section)) + process('../src/{0}'.format(src_subdir), target) + +def texify(texfile): + from subprocess import Popen, PIPE, check_call + version = Popen(["pdflatex", "-version"], stdout=PIPE).communicate()[0] + # Call decode() to convert from bytes to string, required in Python 3 + if re.match('.*MiKTeX.*', version.decode()): + # MiKTeX's "texify" calls latex/bibtex in tandem automatically + print("Running texify on {0}...".format(texfile)) + check_call(['texify', '-pq', texfile]) + else: + check_call(['pdflatex', texfile]) + check_call(['bibtex', texfile.replace('.tex', '.aux')]) + check_call(['pdflatex', texfile]) + check_call(['pdflatex', texfile]) + +os.chdir(os.path.dirname(os.path.abspath(__file__))) +with open('plugins_generated.tex', 'w') as f: + process_src(f, 'shapes') + process_src(f, 'bsdfs', 'section_bsdf') + process_src(f, 'textures') + process_src(f, 'subsurface') + process_src(f, 'medium', 'section_media') + process_src(f, 'phase') + process_src(f, 'volume', 'section_volumes') + process_src(f, 'emitters') + process_src(f, 'sensors') + process_src(f, 'integrators') + process_src(f, 'samplers') + process_src(f, 'films') + process_src(f, 'rfilters') + +texify('main.tex') diff --git a/src/libhw/glrenderer.cpp b/src/libhw/glrenderer.cpp index 1c8c6083..cbe01eec 100644 --- a/src/libhw/glrenderer.cpp +++ b/src/libhw/glrenderer.cpp @@ -157,7 +157,7 @@ void GLRenderer::init(Device *device, Renderer *other) { Log(m_warnLogLevel, "Capabilities: Vertex buffer objects are NOT supported!"); } - if (glewIsSupported("GL_EXT_geometry_shader4")) { + if (glewIsSupported("GL_EXT_geometry_shader4") && glewIsSupported("GL_EXT_gpu_shader4")) { m_capabilities->setSupported( RendererCapabilities::EGeometryShaders, true); Log(m_logLevel, "Capabilities: Geometry shaders are supported.");