Kanzi 3.2 迁移指南

Kanzi 3.2 迁移指南包含信息,并提供将现有 Kanzi 应用程序从之前的 Kanzi 版本移植的说明:

Kanzi Studio 更改

默认纹理 (Default Texture)

当您迁移使用默认纹理的 Kanzi Studio 项目从 Kanzi Studio 3.1.1 到 Kanzi Studio 3.2 时,Kanzi Studio 创建 Default Texture Single Texture 和 DefaultBackgroundImage.png 图像,Default Texture 使用该图像。

Kanzi Engine 更改

OpenGL 包装函数 kzsGl*() 现在实现为非内联函数。

在 Kanzi 3.2 中,默认交换行为从复制更改为交换。这意味着渲染新帧从空开始,而不是从上一帧渲染的内容开始。请参阅 KzsSurfaceProperties。

如您要使用复制,在您的 Application 类中使用:

virtual void onConfigure(ApplicationProperties& configuration) KZ_OVERRIDE
{
    <base class>::onConfigure(configuration);
    configuration.defaultSurfaceProperties.swapBehaviorCopy = 1;
}

Kanzi 命名空间包括来自 std 命名空间的 C++ 功能。

Kanzi 命名空间包括来自 std 命名空间的 C++ 特性,例如 shared_ptr、vector 和 string。例如,包含 <kanzi/platform/vector.hpp> 而不是 <vector>。

Mesh 更改

当目标硬件支持时,原始网格 (Box, Sphere, Plane) 使用半浮点顶点数据类型。

Kanzi 3.1.1

Kanzi 3.2

PrimitiveType

GraphicsPrimitiveType

MeshVertexAttribute

VertexAttribute

MeshVertexAttributeDataType

GraphicsDataType

MeshVertexAttributeDataType::FLOAT32

GraphicsDataTypeSFLOAT32

MeshVertexAttributeSemantic::Value

VertexAttribute::Semantic

MeshVertexAttributeSemantic::POSITION

VertexAttribute::SemanticPosition

Renderer 更改

kzcRenderer 现在是 kanzi::Renderer:

  • Header core/renderer/kzc_renderer.h 替换为 kanzi/rendering/renderer.hpp。

  • Header core/renderer/kzc_gpu_buffer_manager.h 替换为 kanzi/rendering/gpu_buffer_manager.hpp。

  • Header core/util/image/kzc_etc.h 替换为 user/image/kzc_etc.h

  • struct kzcRenderer 替换为 Renderer。

Kanzi 3.1.1 函数

Kanzi 3.2 函数

kzcRendererGetGPUBufferManager()

Renderer::getGPUBufferManager()

kzcRendererGenerateBuffer()

Renderer::generateBuffer()

kzcRendererDeleteBuffer()

Renderer::deleteBuffer()

kzcRendererSetVertexBuffer()

Renderer::setVertexBuffer()

kzcRendererSetVertexBufferData()

Renderer::setVertexBufferData()

kzcRendererEnableVertexAttributeArray()

Renderer::enableVertexAttributeArray() Renderer::disableVertexAttributeArray()

kzcRendererSetVertexBufferPointer()

Renderer::setVertexBufferPointer()

kzcRendererSetIndexBuffer()

Renderer::setIndexBuffer()

kzcRendererSetIndexBufferData()

Renderer::setIndexBufferData()

kzcRendererSetIndexData()

Renderer::setIndexData()

kzcRendererSetIndexCount()

Renderer::setIndexCount()

kzcRendererSetPrimitiveType()

Renderer::setPrimitiveType()

kzcRendererGenerateFrameBuffer()

Renderer::generateFramebuffer()

kzcRendererBindFrameBuffer()

Renderer::bindFramebuffer()

kzcRendererIsFrameBufferComplete()

Renderer::isFramebufferComplete()

kzcRendererDeleteFrameBuffer()

Renderer::deleteFramebuffer()

kzcRendererSetActiveFrameBuffer()

Renderer::setActiveFramebuffer()

kzcRendererResetActiveFrameBuffer()

Renderer::resetActiveFramebuffer()

kzcRendererFrameBufferRenderBuffer()

Renderer::framebufferRenderbuffer()

kzcRendererFrameBufferTexture2D()

Renderer::framebufferTexture2D()

kzcRendererGenerateRenderBuffer()

Renderer::generateRenderbuffer()

kzcRendererBindRenderBuffer()

Renderer::bindRenderbuffer()

kzcRendererRenderBufferStorage()

Renderer::renderbufferStorage()

kzcRendererDeleteRenderBuffer()

Renderer::deleteRenderbuffer()

kzcRendererIsClearEnabled()

Renderer::isClearEnabled()

kzcRendererCreateShader()

Renderer::createShader()

kzcRendererCompileSourceShader()

Renderer::compileSourceShader()

kzcRendererDeployBinaryShader()

Renderer::deployBinaryShader()

kzcRendererCreateShaderProgram()

Renderer::createShaderProgram()

kzcRendererAttachShaderToProgram()

Renderer::attachShaderToProgram()

kzcRendererBindAttributeToLocation()

Renderer::bindAttributeToLocation()

kzcRendererLinkShader()

Renderer::linkShader()

kzcRendererProgramBinary()

Renderer::programBinary()

kzcRendererDeleteShader()

Renderer::deleteShader()

kzcRendererSetActiveVertexAttributeMap()

Renderer::setActiveShaderHandle()

kzcRendererSetVertexCount()

Renderer::setVertexCount()

kzcRendererEnableState()

Renderer::enableState()

kzcRendererDisableState()

Renderer::disableState()

kzcRendererGetState()

Renderer::getState()

kzcRendererSetClearColor()

Renderer::setClearColor()

kzcRendererSetClearDepthValue()

Renderer::setClearDepthValue()

kzcRendererSetClearStencil()

Renderer::setClearStencil()

kzcRendererSetColorWriteMode()

Renderer::setColorWriteMode()

kzcRendererSetViewport()

Renderer::setViewport()

kzcRendererSetScissorTest()

Renderer::setScissorTest()

kzcRendererSetDepthTest()

Renderer::setDepthTest()

kzcRendererSetMatrix()

Renderer::setMatrix()

kzuRendererApplyCameraMatrix()

Renderer::applyCameraMatrix()

kzuRendererApplyLight()

Renderer::applyLight()

kzcRendererResetClearTarget()

Renderer::resetClearTarget()

kzcRendererGetUniformLocation()

Renderer::getUniformArrayLength()

kzcRendererGetUniformTexture()

Renderer::getUniformTexture()

kzcRendererSetUniformVecArray()

Renderer::setUniformVecArray()

kzcRendererGenerateTexture()

Renderer::generateTexture()

kzcRendererBindTexture()

Renderer::bindTexture()

kzcRendererSetTextureFilter()

Renderer::setTextureFilter()

kzcRendererSetTextureAddressingMode()

Renderer::setTextureAddressingMode()

kzcRendererSetTextureImage2D()

Renderer::setTextureImage2D()

kzcRendererSetCompressedTextureImage2D()

Renderer::setCompressedTextureImage2D()

kzcRendererSetTextureSubImage2D()

Renderer::setTextureSubImage2D()

kzcRendererApplyTexture()

Renderer::applyTexture()

kzcRendererGenerateMipmap()

Renderer::generateMipmap()

kzcRendererDeleteTexture()

Renderer::deleteTexture()

kzcRendererGetMaximumTextureSize()

Renderer::getMaximumTextureSize()

kzcRendererGetMaximumRenderbufferSize()

Renderer::getMaximumRenderbufferSize()

kzcRendererGetMaximumViewportWidth()

Renderer::getMaximumViewportWidth()

kzcRendererGetMaximumViewportHeight()

Renderer::getMaximumViewportHeight()

kzuRendererResetPass()

Renderer3D::resetPass()

kzuRendererSetOverrideMaterial()

Renderer3D::setOverrideMaterial()

kzuRendererSetTransformedObjectList()

Renderer3D::setTransformedObjectList()

kzuRendererSetSortByShader()

Renderer3D::setSortByShader()

kzuRendererIsSortByShader()

Renderer3D::isSortByShader()

kzuRendererResolveBatchQueue()

Renderer3D::resolveBatchQueue()

kzuRendererGetClearColorBufferOverride()

Renderer3D::getClearColorBufferOverride()

kzuRendererGetClearColorOverride()

Renderer3D::getClearColorOverride()

kzuRendererGetCullFaceOverride()

Renderer3D::getCullFaceOverride()

kzuRendererApplyStencilSettings()

Renderer3D::applyStencilSettings()

kzuRendererDrawPrimitiveBufferTextured()

Renderer3D::drawPrimitiveBufferTextured()

kzuRendererGetPropertyQuery()

Renderer3D::getPropertyQuery()

Kanzi 3.1.1 枚举

Kanzi 3.2 枚举

KzcRendererClearTarget

GraphicsClearTarget

KzcRendererBlendMode

GraphicsBlendMode

KzcRendererDepthTest

GraphicsCompareFunction

KzcRendererState

Renderer::State

KzcRendererMatrix

Renderer::FixedMatrix

KzcRendererCullMode

GraphicsCullMode

KzcRendererStencilFunction

GraphicsCompareFunction

KzcRendererStencilOperation

GraphicsStencilOperation

Renderer3D 更改

kzuRenderer 现在是 kanzi::Renderer3D:

  • Headers user/renderer/kzu_renderer.h 和 user/renderer/kzu_renderer_util.h 替换为 kanzi/graphics_3d/renderer3d.hpp。

  • struct kzuRenderer 替换为 Renderer3D。

KzuTransformedScene 被 TransformedScene3D 替换。

Kanzi 3.1.1 函数

Kanzi 3.2 函数

kzuRendererResetPass()

Renderer3D::resetPass()

kzuRendererSetOverrideMaterial()

Renderer3D::setOverrideMaterial()

kzuRendererSetTransformedObjectList()

Renderer3D::setTransformedObjectList()

kzuRendererSetSortByShader()

Renderer3D::setSortByShader()

kzuRendererIsSortByShader()

Renderer3D::isSortByShader()

kzuRendererResolveBatchQueue()

Renderer3D::resolveBatchQueue()

kzuRendererGetClearColorBufferOverride()

Renderer3D::getClearColorBufferOverride()

kzuRendererGetClearColorOverride()

Renderer3D::getClearColorOverride()

kzuRendererGetCullFaceOverride()

Renderer3D::getCullFaceOverride()

kzuRendererApplyStencilSettings()

Renderer3D::applyStencilSettings()

kzuRendererDrawPrimitiveBufferTextured()

Renderer3D::drawPrimitiveBufferTextured()

kzuRendererGetPropertyQuery()

Renderer3D::getPropertyQuery()

Kanzi 3.1.1 枚举

Kanzi 3.2 枚举

KzuCullMode

GraphicsCullMode

KzuColorWriteMode

GraphicsColorWriteMode

KzuStencilOperation

GraphicsStencilOperation

KzuStencilFunction

GraphicsCompareFunction

资源 (Resources)

Kanzi 3.1.1 函数

Kanzi 3.2 函数

kzuResourceLoad()

Resource::load()

kzuResourceIsLoaded()

Resource::isLoaded()

GPU 资源

Kanzi 3.1.1 函数

Kanzi 3.2 函数

GPUResource::getDeploymentStrategy()

GPUResource::getDeployOnLoad()

GPUResource::setDeploymentStrategy()

GPUResource::setDeployOnLoad()

帧缓冲区

如果不支持请求的格式,这些函数会尝试使用后备纹理格式:

  • Framebuffer::addTexture()

  • Framebuffer::addRenderbuffer()

Kanzi 3.1.1 枚举

Kanzi 3.2 枚举

FramebufferAttachment

Framebuffer::Attachment

APIFramebufferAttachment

Surface::APIAttachment

纹理 (Texture)

Kanzi 3.1.1 枚举

Kanzi 3.2 枚举

TextureTarget::Value

Texture::Target

TextureFlag::Value

Texture::CreateFlags

TextureFilter

Sampler::Filter

TextureMipmapMode

Sampler::MipmapMode

TextureAddressingMode

Sampler::AddressingMode

着色器 (Shader)

Kanzi 3.1.1 枚举

Kanzi 3.2 枚举

ShaderType::Value

Shader::ProgramType

另请参阅

Kanzi 3.2 发行说明

已知问题