Example #1
0
void CompositeProcessorGL::compositePortsToOutport(ImageOutport& outport, ImageType type, ImageInport& inport) {
    if (inport.isReady() && outport.hasData()) {        
        utilgl::activateTarget(outport, type);
        shader_.activate();

        TextureUnitContainer units;
        utilgl::bindAndSetUniforms(shader_, units, *inport.getData(),  "tex0", ImageType::ColorDepthPicking);
        utilgl::bindAndSetUniforms(shader_, units, *outport.getData(), "tex1", ImageType::ColorDepthPicking);
        utilgl::setShaderUniforms(shader_, outport, "outportParameters");
        utilgl::singleDrawImagePlaneRect();

        shader_.deactivate();
        utilgl::deactivateCurrentTarget();
    }
}
Example #2
0
void activateTargetAndCopySource(ImageOutport& outport, ImageInport& inport, ImageType type) {
    auto outImage = outport.getEditableData();
    auto outImageGL = outImage->getEditableRepresentation<ImageGL>();

    auto inImage = inport.getData();
    auto inImageGL = inImage->getRepresentation<ImageGL>();
    inImageGL->copyRepresentationsTo(outImageGL);

    outImageGL->activateBuffer(type);
}
Example #3
0
void updateAndActivateTarget(ImageOutport& outport, ImageInport& inport) {
    auto outImage = outport.getEditableData();
    auto outImageGL = outImage->getEditableRepresentation<ImageGL>();
    outImageGL->updateFrom(inport.getData()->getRepresentation<ImageGL>());
    outImageGL->activateBuffer();
}
Example #4
0
void bindAndSetUniforms(Shader& shader, TextureUnitContainer& cont, ImageInport& port,
                        ImageType type) {
    bindAndSetUniforms(shader, cont, *port.getData(), port.getIdentifier(), type);
}
Example #5
0
void setShaderUniforms(Shader& shader, const ImageInport& inport, const std::string samplerID) {
    setShaderUniforms(shader, *inport.getData(),
                      samplerID.empty() ? inport.getIdentifier() + "Parameters" : samplerID);
}
Example #6
0
void unbindTextures(const ImageInport& inport) {
    unbindTextures(*inport.getData(), true, true, true);
}
Example #7
0
void unbindPickingTexture(const ImageInport& inport) {
    unbindTextures(*inport.getData(), false, false, true);
}
Example #8
0
void unbindDepthTexture(const ImageInport& inport) {
    unbindTextures(*inport.getData(), false, true, false);
}
Example #9
0
void bindTextures(const ImageInport& inport, const TextureUnit& colorTexUnit,
                  const TextureUnit& depthTexUnit, const TextureUnit& pickingTexUnit) {
    bindTextures(*inport.getData(), true, true, true, colorTexUnit.getEnum(), depthTexUnit.getEnum(),
                 pickingTexUnit.getEnum());
}
Example #10
0
void bindPickingTexture(const ImageInport& inport, const TextureUnit& texUnit) {
    bindTextures(*inport.getData(), false, false, true, 0, 0, texUnit.getEnum());
}
Example #11
0
void bindColorTexture(const ImageInport& inport, const TextureUnit& texUnit) {
    bindTextures(*inport.getData(), true, false, false, texUnit.getEnum(), 0, 0);
}
Example #12
0
void bindTextures(const ImageInport& inport, GLenum colorTexUnit, GLenum depthTexUnit,
                  GLenum pickingTexUnit) {
    bindTextures(*inport.getData(), true, true, true, colorTexUnit, depthTexUnit, pickingTexUnit);
}
Example #13
0
void bindPickingTexture(const ImageInport& inport, GLenum texUnit) {
    bindTextures(*inport.getData(), false, false, true, 0, 0, texUnit);
}
Example #14
0
void bindDepthTexture(const ImageInport& inport, GLenum texUnit) {
    bindTextures(*inport.getData(), false, true, false, 0, texUnit, 0);
}