Exemplo n.º 1
0
void PostProc::Draw(bool bindFB)
{
    // assume write was just written
    const ShaderBlur *blurShader = m_blur ? &ShaderBlur::instance(m_blur) : NULL;

    if (m_blur)
    {
        glDisable(GL_BLEND);
        
        swapRW(); 
        BindWriteFramebuffer();
        blurShader->setDimension(1);
        getRead().DrawFullscreen(*blurShader);
        UnbindWriteFramebuffer();
        
        swapRW();
        BindWriteFramebuffer();
        blurShader->setDimension(0);
        getRead().DrawFullscreen(*blurShader);
        UnbindWriteFramebuffer();

        glEnable(GL_BLEND);
    }

    if (!bindFB)
    {
        getWrite().DrawFullscreen<ShaderTexture>();
    }
    // nothing to do if bindFB and no blur
}
VkWriteDescriptorSet DescriptorSetReflection::getWrite(VkDescriptorSet dstSet, uint32_t dstBinding, const void* pNext) const
{
  VkWriteDescriptorSet writeSet = getWrite(dstSet, dstBinding);
  assert(writeSet.descriptorType != VK_DESCRIPTOR_TYPE_MAX_ENUM);

  writeSet.pNext = pNext;
  return writeSet;
}
VkWriteDescriptorSet DescriptorSetReflection::getWrite(VkDescriptorSet dstSet, uint32_t dstBinding, const VkBufferView* pTexelBufferView) const
{
  VkWriteDescriptorSet writeSet = getWrite(dstSet, dstBinding);
  assert(writeSet.descriptorType == VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER);

  writeSet.pTexelBufferView = pTexelBufferView;
  return writeSet;
}
Exemplo n.º 4
0
// length is the datagram data length
void Configuration::processWrite(uint8_t* data, int length) {
    // will reply, mark as done.
    request = false;
    uint32_t address = getAddress(data);
    int space = decodeSpace(data);
    for (int i=0; i<length-6; i++) {
        getWrite(address+i, space, data[i+6]);
    }
}
VkWriteDescriptorSet DescriptorSetReflection::getWrite(VkDescriptorSet                                  dstSet,
                                                       uint32_t                                         dstBinding,
                                                       const VkWriteDescriptorSetInlineUniformBlockEXT* pInline) const
{
  VkWriteDescriptorSet writeSet = getWrite(dstSet, dstBinding);
  assert(writeSet.descriptorType != VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT);

  writeSet.pNext = pInline;
  return writeSet;
}
VkWriteDescriptorSet DescriptorSetReflection::getWrite(VkDescriptorSet                                    dstSet,
                                                       uint32_t                                           dstBinding,
                                                       const VkWriteDescriptorSetAccelerationStructureNV* pAccel) const
{
  VkWriteDescriptorSet writeSet = getWrite(dstSet, dstBinding);
  assert(writeSet.descriptorType != VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV);

  writeSet.pNext = pAccel;
  return writeSet;
}
VkWriteDescriptorSet DescriptorSetReflection::getWrite(VkDescriptorSet dstSet, uint32_t dstBinding, const VkDescriptorBufferInfo* pBufferInfo) const
{
  VkWriteDescriptorSet writeSet = getWrite(dstSet, dstBinding);
  assert(writeSet.descriptorType == VK_DESCRIPTOR_TYPE_STORAGE_BUFFER || writeSet.descriptorType == VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
         || writeSet.descriptorType == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
         || writeSet.descriptorType == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC);

  writeSet.pBufferInfo = pBufferInfo;
  return writeSet;
}
VkWriteDescriptorSet DescriptorSetReflection::getWrite(VkDescriptorSet dstSet, uint32_t dstBinding, const VkDescriptorImageInfo* pImageInfo) const
{
  VkWriteDescriptorSet writeSet = getWrite(dstSet, dstBinding);
  assert(writeSet.descriptorType == VK_DESCRIPTOR_TYPE_SAMPLER || writeSet.descriptorType == VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
         || writeSet.descriptorType == VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE || writeSet.descriptorType == VK_DESCRIPTOR_TYPE_STORAGE_IMAGE
         || writeSet.descriptorType == VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT);

  writeSet.pImageInfo = pImageInfo;
  return writeSet;
}
Exemplo n.º 9
0
void PostProc::UnbindWriteFramebuffer()
{
    getWrite().UnbindFramebuffer();
}
Exemplo n.º 10
0
void PostProc::BindWriteFramebuffer()
{
    getWrite().BindFramebuffer(m_res);
}