/*---------------------------------------------------------------------------* Copyright (C) Nintendo. All rights reserved. These coded instructions, statements, and computer programs contain proprietary information of Nintendo of America Inc. and/or Nintendo Company Ltd., and are protected by Federal copyright law. They may not be disclosed to third parties or copied or duplicated in any form, in whole or in part, without the prior written consent of Nintendo. *---------------------------------------------------------------------------*/ // gx2Tessellation.h // // Declares gx2Tessellation-related functions for gx2 library. #ifndef _CAFE_GX2_TESSELLATION_H_ #define _CAFE_GX2_TESSELLATION_H_ #ifdef __cplusplus extern "C" { #endif // __cplusplus /// @addtogroup GX2TessellationGroup /// @{ /// \brief Set tessellation engine controls. /// This API only needs to be called if the tessellation mode, index fmt, or primitive type /// changes. It does not need to be called for every draw call. /// /// \note The indexFmt must be set to 32 bit for non-index drawing and adaptive tessellation mode /// /// \param mode Tessellation mode /// \param primType Type of primitive to draw /// \param indexFmt Specifies if indices are 16-bit or 32-bit /// /// \donotcall \gx2_typical \enddonotcall /// /// \writesgpu /// \alwayswritesgpu /// void GX2API GX2SetTessellation(GX2TessellationMode mode, GX2PrimitiveType primType, GX2IndexFormat indexFmt); /// \brief Sets the maximum tessellation level for adaptive tessellation and the tessellation level /// for continuous and discrete tessellation. /// /// For adaptive tessellation mode, minLevel and maxLevel bound the amount /// of tessellation performed. The actual amount will be between these /// two parameters (inclusive). /// /// For discrete mode, values in the range (1.0, 14.0) are legal. /// For non-discrete modes, values in the range (1.0, 15.0) are legal. /// The minLevel <= maxLevel. /// /// \param maxLevel maximum tessellation level /// /// \donotcall \gx2_typical \enddonotcall /// /// \writesgpu /// \alwayswritesgpu /// void GX2API GX2SetMaxTessellationLevel(f32 maxLevel); /// \brief Sets the minimum tessellation level for adaptive tessellation /// /// This API is not used for continuous and discrete tessellation modes /// /// For adaptive tessellation mode, minLevel and maxLevel bound the amount /// of tessellation performed. The actual amount will be between these /// two parameters (inclusive). /// /// The min level values in the range (1.0, 15.0) are legal. /// The minLevel <= maxLevel. /// /// \param minLevel minimum tessellation factor /// /// \donotcall \gx2_typical \enddonotcall /// /// \writesgpu /// \alwayswritesgpu /// void GX2API GX2SetMinTessellationLevel(f32 minLevel); /// @} #ifdef __cplusplus } #endif // __cplusplus #endif // _CAFE_GX2_TESSELLATION_H_