#include <fleximage.h>

Public Member Functions | |
| FlexImageFilm (int xres, int yres) | |
| FlexImageFilm (int xres, int yres, Filter *filt, const float crop[4], const string &filename1, bool premult, int wI, int dI, bool w_tonemapped_EXR, bool w_untonemapped_EXR, bool w_tonemapped_IGI, bool w_untonemapped_IGI, bool w_tonemapped_TGA, bool w_resume_FLM, bool restart_resume_FLM, int haltspp, float reinhard_prescale, float reinhard_postscale, float reinhard_burn, float g, int reject_warmup, bool debugmode) | |
| ~FlexImageFilm () | |
| int | RequestBuffer (BufferType type, BufferOutputConfig output, const string &filePostfix) |
| void | CreateBuffers () |
| void | GetSampleExtent (int *xstart, int *xend, int *ystart, int *yend) const |
| void | AddSample (float sX, float sY, const XYZColor &L, float alpha, int buf_id=0, int bufferGroup=0) |
| void | AddSampleCount (float count, int bufferGroup=0) |
| void | WriteImage (ImageType type) |
| void | updateFrameBuffer () |
| unsigned char * | getFrameBuffer () |
| void | createFrameBuffer () |
| float | getldrDisplayInterval () |
| void | TransmitFilm (std::basic_ostream< char > &stream, int buf_id=0, int bufferGroup=0, bool clearBuffer=true) |
| void | UpdateFilm (Scene *scene, std::basic_istream< char > &stream, int buf_id=0, int bufferGroup=0) |
Static Public Member Functions | |
| static Film * | CreateFilm (const ParamSet ¶ms, Filter *filter) |
Private Member Functions | |
| void | FlushSampleArray () |
| void | MergeSampleArray () |
| void | WriteImage2 (ImageType type, float *rgb, float *alpha, string postfix) |
| void | WriteTGAImage (float *rgb, float *alpha, const string &filename) |
| void | WriteEXRImage (float *rgb, float *alpha, const string &filename) |
| void | WriteIGIImage (float *rgb, float *alpha, const string &filename) |
| void | WriteResumeFilm (const string &filename) |
| void | ScaleOutput (float *rgb, float *alpha, float *scale) |
Private Attributes | |
| Filter * | filter |
| int | writeInterval |
| int | displayInterval |
| string | filename |
| bool | premultiplyAlpha |
| bool | buffersInited |
| float | cropWindow [4] |
| float * | filterTable |
| int | xPixelStart |
| int | yPixelStart |
| int | xPixelCount |
| int | yPixelCount |
| ParamSet | toneParams |
| float | gamma |
| float | reject_warmup_samples |
| bool | writeTmExr |
| bool | writeUtmExr |
| bool | writeTmIgi |
| bool | writeUtmIgi |
| bool | writeTmTga |
| bool | writeResumeFlm |
| bool | restartResumeFlm |
| unsigned char * | framebuffer |
| boost::xtime | lastWriteImageTime |
| bool | debug_mode |
| float * | factor |
| std::vector< BufferConfig > | bufferConfigs |
| std::vector< BufferGroup > | bufferGroups |
| boost::recursive_mutex | addSampleMutex |
| float | maxY |
| u_int | warmupSamples |
| bool | warmupComplete |
| ArrSample * | SampleArrptr |
| ArrSample * | SampleArr2ptr |
| boost::recursive_mutex | arrSampleMutex |
| int | curSampleArrId |
| int | curSampleArr2Id |
| int | maxSampleArrId |
| boost::recursive_mutex | imageMutex |
Definition at line 211 of file fleximage.h.
| lux::FlexImageFilm::FlexImageFilm | ( | int | xres, | |
| int | yres | |||
| ) | [inline] |
| FlexImageFilm::FlexImageFilm | ( | int | xres, | |
| int | yres, | |||
| Filter * | filt, | |||
| const float | crop[4], | |||
| const string & | filename1, | |||
| bool | premult, | |||
| int | wI, | |||
| int | dI, | |||
| bool | w_tonemapped_EXR, | |||
| bool | w_untonemapped_EXR, | |||
| bool | w_tonemapped_IGI, | |||
| bool | w_untonemapped_IGI, | |||
| bool | w_tonemapped_TGA, | |||
| bool | w_resume_FLM, | |||
| bool | restart_resume_FLM, | |||
| int | haltspp, | |||
| float | reinhard_prescale, | |||
| float | reinhard_postscale, | |||
| float | reinhard_burn, | |||
| float | g, | |||
| int | reject_warmup, | |||
| bool | debugmode | |||
| ) |
Definition at line 57 of file fleximage.cpp.
References lux::ParamSet::AddFloat(), Ceil2Int(), cropWindow, curSampleArr2Id, curSampleArrId, lux::Filter::Evaluate(), filter, FILTER_TABLE_SIZE, filterTable, lastWriteImageTime, cimg_library::cimg::max(), maxSampleArrId, maxY, memcpy(), reject_warmup_samples, SampleArr2ptr, SampleArrptr, toneParams, warmupComplete, warmupSamples, xPixelCount, xPixelStart, lux::Film::xResolution, lux::Filter::xWidth, yPixelCount, yPixelStart, lux::Film::yResolution, and lux::Filter::yWidth.
| lux::FlexImageFilm::~FlexImageFilm | ( | ) | [inline] |
| void FlexImageFilm::AddSample | ( | float | sX, | |
| float | sY, | |||
| const XYZColor & | L, | |||
| float | alpha, | |||
| int | buf_id = 0, |
|||
| int | bufferGroup = 0 | |||
| ) | [virtual] |
Implements lux::Film.
Definition at line 159 of file fleximage.cpp.
References addSampleMutex, lux::ArrSample::alpha, arrSampleMutex, lux::BUF_FRAMEBUFFER, lux::ArrSample::buf_id, lux::BUF_TYPE_PER_SCREEN, lux::ArrSample::bufferGroup, bufferGroups, CreateBuffers(), curSampleArr2Id, curSampleArrId, lux::IMAGE_FILEOUTPUT, lastWriteImageTime, maxSampleArrId, MergeSampleArray(), RequestBuffer(), SampleArr2ptr, SampleArrptr, lux::ArrSample::sX, lux::ArrSample::sY, WriteImage(), writeInterval, and lux::ArrSample::xyz.
| void lux::FlexImageFilm::AddSampleCount | ( | float | count, | |
| int | bufferGroup = 0 | |||
| ) | [inline, virtual] |
Reimplemented from lux::Film.
Definition at line 234 of file fleximage.h.
References bufferGroups, lux::Film::enoughSamplePerPixel, lux::Film::haltSamplePerPixel, and lux::Film::invSamplePerPass.
| void FlexImageFilm::CreateBuffers | ( | ) | [virtual] |
Reimplemented from lux::Film.
Definition at line 134 of file fleximage.cpp.
References bufferConfigs, bufferGroups, filename, LUX_INFO, LUX_NOERROR, luxError, restartResumeFlm, UpdateFilm(), writeResumeFlm, xPixelCount, and yPixelCount.
Referenced by AddSample(), and FlushSampleArray().
Definition at line 773 of file fleximage.cpp.
References Clamp(), cimg_library::crop(), debug_mode, displayInterval, filename, lux::ParamSet::FindFloat(), lux::ParamSet::FindOneBool(), lux::ParamSet::FindOneFloat(), lux::ParamSet::FindOneInt(), lux::ParamSet::FindOneString(), FlexImageFilm(), gamma, cimg_library::cimg::max(), cimg_library::cimg::min(), premultiplyAlpha, and writeInterval.
Referenced by lux::MakeFilm().
| void FlexImageFilm::createFrameBuffer | ( | ) |
Definition at line 469 of file fleximage.cpp.
References framebuffer, xPixelCount, and yPixelCount.
Referenced by getFrameBuffer(), and updateFrameBuffer().
| void FlexImageFilm::FlushSampleArray | ( | ) | [private] |
Definition at line 219 of file fleximage.cpp.
References addSampleMutex, arrSampleMutex, lux::BUF_FRAMEBUFFER, lux::BUF_TYPE_PER_SCREEN, bufferGroups, CreateBuffers(), curSampleArr2Id, curSampleArrId, MergeSampleArray(), RequestBuffer(), SampleArr2ptr, and SampleArrptr.
Referenced by WriteImage().
| unsigned char * FlexImageFilm::getFrameBuffer | ( | ) | [virtual] |
Implements lux::Film.
Definition at line 487 of file fleximage.cpp.
References createFrameBuffer(), and framebuffer.
| float lux::FlexImageFilm::getldrDisplayInterval | ( | ) | [inline, virtual] |
| void FlexImageFilm::GetSampleExtent | ( | int * | xstart, | |
| int * | xend, | |||
| int * | ystart, | |||
| int * | yend | |||
| ) | const [virtual] |
Implements lux::Film.
Definition at line 118 of file fleximage.cpp.
References filter, Floor2Int(), xPixelCount, xPixelStart, lux::Filter::xWidth, yPixelCount, yPixelStart, and lux::Filter::yWidth.
| void FlexImageFilm::MergeSampleArray | ( | ) | [private] |
Definition at line 247 of file fleximage.cpp.
References lux::Buffer::Add(), lux::ArrSample::alpha, lux::ArrSample::buf_id, lux::ArrSample::bufferGroup, bufferGroups, Ceil2Int(), curSampleArr2Id, debug_mode, filter, FILTER_TABLE_SIZE, filterTable, Floor2Int(), lux::BufferGroup::getBuffer(), INFINITY, lux::Filter::invXWidth, lux::Filter::invYWidth, lux::Color::IsNaN(), LUX_LIMIT, LUX_WARNING, luxError, cimg_library::cimg::max(), maxY, cimg_library::cimg::min(), reject_warmup_samples, SampleArr2ptr, lux::ArrSample::sX, lux::ArrSample::sY, warmupComplete, warmupSamples, xPixelCount, xPixelStart, lux::Filter::xWidth, lux::ArrSample::xyz, lux::XYZColor::y(), yPixelCount, yPixelStart, and lux::Filter::yWidth.
Referenced by AddSample(), and FlushSampleArray().
| int FlexImageFilm::RequestBuffer | ( | BufferType | type, | |
| BufferOutputConfig | output, | |||
| const string & | filePostfix | |||
| ) | [virtual] |
Reimplemented from lux::Film.
Definition at line 127 of file fleximage.cpp.
References bufferConfigs.
Referenced by AddSample(), and FlushSampleArray().
| void FlexImageFilm::ScaleOutput | ( | float * | rgb, | |
| float * | alpha, | |||
| float * | scale | |||
| ) | [private] |
Definition at line 395 of file fleximage.cpp.
References xPixelCount, and yPixelCount.
Referenced by WriteImage().
| void FlexImageFilm::TransmitFilm | ( | std::basic_ostream< char > & | stream, | |
| int | buf_id = 0, |
|||
| int | bufferGroup = 0, |
|||
| bool | clearBuffer = true | |||
| ) |
Definition at line 632 of file fleximage.cpp.
References addSampleMutex, lux::Pixel::alpha, bufferGroups, lux::Color::c, lux::Buffer::Clear(), lux::BufferGroup::getBuffer(), IsLittleEndian(), lux::Pixel::L, LUX_INFO, LUX_NOERROR, LUX_SEVERE, LUX_SYSTEM, luxError, lux::BufferGroup::numberOfSamples, lux::Buffer::pixels, BlockedArray< T, logBlockSize >::uSize(), BlockedArray< T, logBlockSize >::vSize(), lux::Pixel::weightSum, and writeLittleEndianFloat().
Referenced by lux::Context::transmitFilm(), and WriteResumeFilm().
| void FlexImageFilm::UpdateFilm | ( | Scene * | scene, | |
| std::basic_istream< char > & | stream, | |||
| int | buf_id = 0, |
|||
| int | bufferGroup = 0 | |||
| ) |
Definition at line 699 of file fleximage.cpp.
References addSampleMutex, lux::Pixel::alpha, bufferGroups, lux::Color::c, lux::BufferGroup::getBuffer(), IsLittleEndian(), lux::Pixel::L, LUX_ERROR, LUX_INFO, LUX_NOERROR, LUX_SYSTEM, luxError, lux::BufferGroup::numberOfSamples, lux::Scene::numberOfSamplesFromNetwork, lux::Buffer::pixels, readLittleEndianFloat(), BlockedArray< T, logBlockSize >::uSize(), BlockedArray< T, logBlockSize >::vSize(), lux::Pixel::weightSum, lux::Buffer::xPixelCount, and lux::Buffer::yPixelCount.
Referenced by CreateBuffers(), and lux::RenderFarm::updateFilm().
| void FlexImageFilm::updateFrameBuffer | ( | ) | [virtual] |
Implements lux::Film.
Definition at line 479 of file fleximage.cpp.
References createFrameBuffer(), framebuffer, lux::IMAGE_FRAMEBUFFER, and WriteImage().
| void FlexImageFilm::WriteEXRImage | ( | float * | rgb, | |
| float * | alpha, | |||
| const string & | filename | |||
| ) | [private] |
Definition at line 563 of file fleximage.cpp.
References LUX_INFO, LUX_NOERROR, luxError, lux::WriteRGBAImageFloat(), xPixelCount, xPixelStart, lux::Film::xResolution, yPixelCount, yPixelStart, and lux::Film::yResolution.
Referenced by WriteImage2().
| void FlexImageFilm::WriteIGIImage | ( | float * | rgb, | |
| float * | alpha, | |||
| const string & | filename | |||
| ) | [private] |
Definition at line 573 of file fleximage.cpp.
References LUX_INFO, LUX_NOERROR, luxError, lux::WriteIgiImage(), xPixelCount, xPixelStart, lux::Film::xResolution, yPixelCount, yPixelStart, and lux::Film::yResolution.
Referenced by WriteImage2().
| void FlexImageFilm::WriteImage | ( | ImageType | type | ) | [virtual] |
Implements lux::Film.
Definition at line 410 of file fleximage.cpp.
References lux::BUF_FRAMEBUFFER, lux::BUF_RAWDATA, lux::BUF_STANDALONE, bufferConfigs, bufferGroups, lux::Scene::camera, factor, FlushSampleArray(), lux::Camera::GetFlux2RadianceFactors(), imageMutex, lux::SurfaceIntegrator::IsFluxBased(), ScaleOutput(), lux::Film::scene, lux::Scene::surfaceIntegrator, WriteImage2(), xPixelCount, and yPixelCount.
Referenced by AddSample(), and updateFrameBuffer().
| void FlexImageFilm::WriteImage2 | ( | ImageType | type, | |
| float * | rgb, | |||
| float * | alpha, | |||
| string | postfix | |||
| ) | [private] |
Definition at line 337 of file fleximage.cpp.
References lux::ApplyImagingPipeline(), filename, framebuffer, gamma, lux::IMAGE_FILEOUTPUT, lux::IMAGE_FRAMEBUFFER, toneParams, WriteEXRImage(), WriteIGIImage(), WriteResumeFilm(), writeResumeFlm, WriteTGAImage(), writeTmExr, writeTmIgi, writeTmTga, writeUtmExr, writeUtmIgi, xPixelCount, lux::Film::xResolution, yPixelCount, and lux::Film::yResolution.
Referenced by WriteImage().
| void FlexImageFilm::WriteResumeFilm | ( | const string & | filename | ) | [private] |
Definition at line 495 of file fleximage.cpp.
References LUX_INFO, LUX_NOERROR, LUX_SEVERE, LUX_SYSTEM, luxError, and TransmitFilm().
Referenced by WriteImage2().
| void FlexImageFilm::WriteTGAImage | ( | float * | rgb, | |
| float * | alpha, | |||
| const string & | filename | |||
| ) | [private] |
Definition at line 515 of file fleximage.cpp.
References cimg_library::cimg::fclose(), cimg_library::cimg::fopen(), LUX_INFO, LUX_NOERROR, LUX_SEVERE, LUX_SYSTEM, luxError, xPixelCount, lux::Film::xResolution, yPixelCount, and lux::Film::yResolution.
Referenced by WriteImage2().
boost::recursive_mutex lux::FlexImageFilm::addSampleMutex [mutable, private] |
Definition at line 300 of file fleximage.h.
Referenced by AddSample(), FlushSampleArray(), TransmitFilm(), and UpdateFilm().
boost::recursive_mutex lux::FlexImageFilm::arrSampleMutex [mutable, private] |
std::vector<BufferConfig> lux::FlexImageFilm::bufferConfigs [private] |
Definition at line 297 of file fleximage.h.
Referenced by CreateBuffers(), RequestBuffer(), and WriteImage().
std::vector<BufferGroup> lux::FlexImageFilm::bufferGroups [private] |
Definition at line 298 of file fleximage.h.
Referenced by AddSample(), AddSampleCount(), CreateBuffers(), FlushSampleArray(), MergeSampleArray(), TransmitFilm(), UpdateFilm(), and WriteImage().
bool lux::FlexImageFilm::buffersInited [private] |
Definition at line 281 of file fleximage.h.
float lux::FlexImageFilm::cropWindow[4] [private] |
int lux::FlexImageFilm::curSampleArr2Id [private] |
Definition at line 311 of file fleximage.h.
Referenced by AddSample(), FlexImageFilm(), FlushSampleArray(), and MergeSampleArray().
int lux::FlexImageFilm::curSampleArrId [private] |
Definition at line 311 of file fleximage.h.
Referenced by AddSample(), FlexImageFilm(), and FlushSampleArray().
bool lux::FlexImageFilm::debug_mode [private] |
int lux::FlexImageFilm::displayInterval [private] |
Definition at line 279 of file fleximage.h.
Referenced by CreateFilm(), and getldrDisplayInterval().
float* lux::FlexImageFilm::factor [private] |
string lux::FlexImageFilm::filename [private] |
Definition at line 280 of file fleximage.h.
Referenced by CreateBuffers(), CreateFilm(), and WriteImage2().
Filter* lux::FlexImageFilm::filter [private] |
Definition at line 277 of file fleximage.h.
Referenced by FlexImageFilm(), GetSampleExtent(), and MergeSampleArray().
float * lux::FlexImageFilm::filterTable [private] |
unsigned char* lux::FlexImageFilm::framebuffer [private] |
Definition at line 289 of file fleximage.h.
Referenced by createFrameBuffer(), getFrameBuffer(), updateFrameBuffer(), WriteImage2(), and ~FlexImageFilm().
float lux::FlexImageFilm::gamma [private] |
boost::recursive_mutex lux::FlexImageFilm::imageMutex [mutable, private] |
boost::xtime lux::FlexImageFilm::lastWriteImageTime [private] |
int lux::FlexImageFilm::maxSampleArrId [private] |
float lux::FlexImageFilm::maxY [private] |
bool lux::FlexImageFilm::premultiplyAlpha [private] |
float lux::FlexImageFilm::reject_warmup_samples [private] |
bool lux::FlexImageFilm::restartResumeFlm [private] |
ArrSample* lux::FlexImageFilm::SampleArr2ptr [private] |
Definition at line 306 of file fleximage.h.
Referenced by AddSample(), FlexImageFilm(), FlushSampleArray(), and MergeSampleArray().
ArrSample* lux::FlexImageFilm::SampleArrptr [private] |
Definition at line 305 of file fleximage.h.
Referenced by AddSample(), FlexImageFilm(), and FlushSampleArray().
ParamSet lux::FlexImageFilm::toneParams [private] |
bool lux::FlexImageFilm::warmupComplete [private] |
u_int lux::FlexImageFilm::warmupSamples [private] |
int lux::FlexImageFilm::writeInterval [private] |
bool lux::FlexImageFilm::writeResumeFlm [private] |
bool lux::FlexImageFilm::writeTmExr [private] |
bool lux::FlexImageFilm::writeTmIgi [private] |
bool lux::FlexImageFilm::writeTmTga [private] |
bool lux::FlexImageFilm::writeUtmExr [private] |
bool lux::FlexImageFilm::writeUtmIgi [private] |
int lux::FlexImageFilm::xPixelCount [private] |
Definition at line 283 of file fleximage.h.
Referenced by CreateBuffers(), createFrameBuffer(), FlexImageFilm(), GetSampleExtent(), MergeSampleArray(), ScaleOutput(), WriteEXRImage(), WriteIGIImage(), WriteImage(), WriteImage2(), and WriteTGAImage().
int lux::FlexImageFilm::xPixelStart [private] |
Definition at line 283 of file fleximage.h.
Referenced by FlexImageFilm(), GetSampleExtent(), MergeSampleArray(), WriteEXRImage(), and WriteIGIImage().
int lux::FlexImageFilm::yPixelCount [private] |
Definition at line 283 of file fleximage.h.
Referenced by CreateBuffers(), createFrameBuffer(), FlexImageFilm(), GetSampleExtent(), MergeSampleArray(), ScaleOutput(), WriteEXRImage(), WriteIGIImage(), WriteImage(), WriteImage2(), and WriteTGAImage().
int lux::FlexImageFilm::yPixelStart [private] |
Definition at line 283 of file fleximage.h.
Referenced by FlexImageFilm(), GetSampleExtent(), MergeSampleArray(), WriteEXRImage(), and WriteIGIImage().
1.5.9