版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
TAF-WG4AS0001-V1.0.0I基于雙目視差支持裸眼3D功能的移動(dòng)通信終端應(yīng)用程序接口(API)規(guī)范范圍本文件規(guī)定了基于雙目視差的非全息裸眼3D顯示技術(shù)應(yīng)用層和運(yùn)行庫(kù)層的接口規(guī)范,包含應(yīng)用運(yùn)行流程,事件處理、應(yīng)用渲染處理、應(yīng)用交互處理的接口定義。本文件適用于雙目視差的裸眼3D終端產(chǎn)品,供移動(dòng)通信終端制造商和應(yīng)用開(kāi)發(fā)者進(jìn)行軟件開(kāi)發(fā)時(shí)使用。規(guī)范性引用文件本文件沒(méi)有規(guī)范性引用文件。術(shù)語(yǔ)和定義下列術(shù)語(yǔ)和定義適用于本文件。
3.1裸眼3D通用標(biāo)準(zhǔn)generalstandardforglasses-free3D一種無(wú)需特殊眼鏡或其他輔助設(shè)備即可觀看3D效果的從內(nèi)容采集、編碼、存儲(chǔ)、傳輸?shù)浇K端播放的移動(dòng)通信終端通用標(biāo)準(zhǔn)方案??s略語(yǔ)下列縮略語(yǔ)適用于本文件。DOF:空間自由度(InterPupillaryDistance)GSGF3D:裸眼3D通用標(biāo)準(zhǔn)(GeneralStandardforGlasses-Free3D)IPD:雙眼瞳距(InterPupillaryDistance)SDK:軟件開(kāi)發(fā)工具包(SoftwareDevelopmentKit)通用架構(gòu)概述裸眼3D顯示技術(shù)的通用架構(gòu),主要包含應(yīng)用層,API層,運(yùn)行庫(kù)層,詳見(jiàn)圖1。圖1通用架構(gòu)圖應(yīng)用層裸眼3D應(yīng)用層是指通過(guò)3D內(nèi)容開(kāi)發(fā)引擎或原生代碼(Native)等平臺(tái)創(chuàng)建的3D應(yīng)用軟件。其中裸眼3DSDK是針對(duì)不同應(yīng)用開(kāi)發(fā)平臺(tái)的軟件開(kāi)發(fā)工具包(SDK)。這些SDK幫助開(kāi)發(fā)者在各個(gè)開(kāi)發(fā)平臺(tái)上創(chuàng)建支持裸眼3D顯示的應(yīng)用內(nèi)容。API層裸眼3DAPI層定義了裸眼3D顯示等功能的標(biāo)準(zhǔn)API。無(wú)論開(kāi)發(fā)者使用何種SDK,最終都通過(guò)調(diào)用這些標(biāo)準(zhǔn)化的API來(lái)實(shí)現(xiàn)裸眼3D顯示等功能,確保了不同設(shè)備和平臺(tái)之間的兼容性。運(yùn)行庫(kù)層裸眼3D運(yùn)行庫(kù)層是整個(gè)系統(tǒng)的運(yùn)行時(shí),負(fù)責(zé)最終的3D顯示效果,包括以下幾個(gè)主要功能模塊:設(shè)備函數(shù):處理與硬件設(shè)備相關(guān)的功能調(diào)用;空間交互函數(shù):管理與3D空間中的交互,如手勢(shì)、觸控等;特性函數(shù):管理裸眼3D顯示的特性,如視差調(diào)節(jié)、深度控制等;渲染函數(shù):負(fù)責(zé)3D圖像的最終渲染,生成立體圖像。這些功能模塊涉及到的算法主要包括通用算法,如眼球追蹤算法、外接設(shè)備交互(如筆控、指環(huán)等)和原生屏和膜廠商實(shí)現(xiàn)的合圖算法。通用算法支持了3D顯示中的互動(dòng)和動(dòng)態(tài)調(diào)整功能。原生屏和膜廠商實(shí)現(xiàn)的合圖算法用于處理設(shè)備本身的特定3D顯示需求。通用架構(gòu)圖展示了從3D應(yīng)用開(kāi)發(fā)及SDK使用、API標(biāo)準(zhǔn)化、到最終3D顯示運(yùn)行的完整流程。API說(shuō)明概述通過(guò)定義統(tǒng)一的API,可以使開(kāi)發(fā)者以一致的方式接入不同廠商的裸眼3D終端,不再需要為每個(gè)廠商的設(shè)備和不同平臺(tái)單獨(dú)編寫和調(diào)整代碼,大大縮短了適配時(shí)間、降低了開(kāi)發(fā)難度;也能在不同的平臺(tái)(如Android、iOS)和設(shè)備上以一致的方式實(shí)現(xiàn)裸眼3D功能,這種跨平臺(tái)的兼容性也給開(kāi)發(fā)者提供了更大的靈活性和選擇空間。應(yīng)用運(yùn)行流程GSGF3D應(yīng)用程序從創(chuàng)建實(shí)例開(kāi)始,應(yīng)用的后續(xù)操作都將依據(jù)該實(shí)例進(jìn)行。首先該實(shí)例進(jìn)行參數(shù)配置并確認(rèn)輸入輸出、圖形及顯示系統(tǒng)正常工作。隨后創(chuàng)建渲染器及目標(biāo)紋理并開(kāi)始渲染,在渲染循環(huán)中,GSGF3D應(yīng)用程序獲取該實(shí)例的事件、位姿、輸入數(shù)據(jù),并獲取目標(biāo)紋理的圖形緩沖進(jìn)行視圖渲染,最后提交渲染幀到該實(shí)例進(jìn)行后續(xù)的圖形算法處理并輸出到顯示屏。應(yīng)用運(yùn)行主線流程見(jiàn)圖2。圖2應(yīng)用運(yùn)行流程圖GSGF3D應(yīng)用生命周期處理Instance的創(chuàng)建概述Instance作為GSGF3D應(yīng)用的上下文環(huán)境,存在于整個(gè)GSGF3D應(yīng)用的生命周期中。[結(jié)構(gòu)體]GS3D_ApplicationTypetypedefstructGS3D_ApplicationType{GS3D_ApplicationType_3D=1,}GS3D_ApplicationType;說(shuō)明:枚舉應(yīng)用的類型成員:GS3D_ApplicationType_3D:3D應(yīng)用類型[結(jié)構(gòu)體]GS3D_InstanceCreateInfotypedefstructGS3D_InstanceCreateInfo{void*next;GS3D_ApplicationTypeappType;void*appVM;void*appActivity;}GS3D_ApplicationType;說(shuō)明:Instance初始信息結(jié)構(gòu)體,用以創(chuàng)建并初始化Instance實(shí)例,next作為預(yù)留指針成員:next預(yù)留指針appType應(yīng)用類型appVM指向JNIJavaVM結(jié)構(gòu)體appActivity指Activity的jobject參考[函數(shù)]GS3D_CreateInstance(創(chuàng)建Instance)GS3D_ResultGS3D_CreateInstance(constGS3D_InstanceCreateInfo*createInfo,GS3D_Instance*instance);說(shuō)明:創(chuàng)建并初始GS3DInstance實(shí)例。參數(shù):[in]createInfo指向GS3D_InstanceCreateInfo的結(jié)構(gòu)體,內(nèi)含Instance初始信息[out]指向GS3D_Instance句柄的指針,instance實(shí)例創(chuàng)建成功輸出一個(gè)有效句柄,創(chuàng)建失敗輸出GS3D_NULL_HANDLE返回值:GS3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_ApplicationType_UnsupportedGS3D_Error_Argument_InvalidGS3D_Error_Out_Of_Memory備注:無(wú)終止及銷毀Instance概述GSGF3D提供GS3D_DestroyInstance函數(shù)進(jìn)行Instance實(shí)例的終止及銷毀。[函數(shù)]GS3D_DestroyInstance(銷毀Instance)GS3D_ResultGS3D_DestroyInstance(GS3D_Instanceinstance);說(shuō)明:終止并銷毀GS3DInstance實(shí)例。參數(shù):[in]instanceGS3D_Instance句柄,由GS3D_CreateInstance獲取返回值:GS3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Handle_InvalidGS3D_Error_Call_Flow_InvalidGS3D_Error_Instance_Unavailable備注:無(wú)獲取Instance的屬性概述在成功創(chuàng)建并初始Instance之后,GSGF3D應(yīng)用程序可經(jīng)由Instance句柄調(diào)用GS3D_GetInstanceProperties函數(shù)獲取Instance屬性信息,包括Instance實(shí)現(xiàn)的GSGF3D版本號(hào)、Instance自身版本號(hào)、以及Instance實(shí)現(xiàn)者名稱。[結(jié)構(gòu)體]GS3D_InstanceProperties(Instance屬性信息)typedefstructGS3D_InstanceProperties{void*next;GS3D_VersionGS3DVersion;GS3D_VersioninstanceVersion;charinstanceName[GS3D_COMMON_STRING_MAX_SIZE];}GS3D_InstanceProperties;說(shuō)明:Instance屬性信息結(jié)構(gòu)體,應(yīng)用程序可用以獲取Instance詳細(xì)屬性成員:next預(yù)留指針GS3DVersionInstance實(shí)現(xiàn)的GSGF3D規(guī)范版本號(hào)instanceVersionInstance自身版本號(hào)instanceNameInstance實(shí)現(xiàn)者名稱[函數(shù)]GS3D_GetInstanceProperties(獲取Instance屬性)GS3D_ResultGS3D_GetInstanceProperties(GS3D_Instanceinstance,GS3D_InstanceProperties*instanceProperties);說(shuō)明:獲取GSGF3DInstance實(shí)現(xiàn)者的屬性信息參數(shù):[in]instanceGS3D_Instance句柄,由GS3D_CreateInstance獲取[out]instanceProperties指向GS3D_InstanceProperties結(jié)構(gòu)體返回值:GS3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_API_UnsupportedGS3D_Error_Handle_Invalid備注:無(wú)GSGF3D事件處理概述GS3D_Event為事件結(jié)構(gòu)體,從事件輪詢函數(shù)GS3D_PollEvent獲取事件指針后,需要根據(jù)該事件類型GS3D_EventType,進(jìn)而獲取存于GS3D_EventData中的事件成員數(shù)據(jù)。事件結(jié)構(gòu)信息[結(jié)構(gòu)體]GS3D_Event(事件信息)typedefstructGS3D_Event{void*next;GS3D_EventTypeEnumtype;GS3D_Timetimestamp;uint8_tbuffer[GS3D_EVENT_BUFFER_MAX_SIZE];GS3D_EventDataGS3DEventData;}GS3D_Event;說(shuō)明:Instance事件信息結(jié)構(gòu)體,應(yīng)用程序可通過(guò)事件輪詢函數(shù)獲取Instance即時(shí)事件成員:next預(yù)留指針type事件類型timestamp事件發(fā)生時(shí)間戳buffer預(yù)留足夠長(zhǎng)度的事件數(shù)據(jù)緩存,以供儲(chǔ)存事件指針轉(zhuǎn)型后的事件結(jié)構(gòu)成員事件結(jié)構(gòu)指針需要根據(jù)事件類型GS3D_EventType轉(zhuǎn)為對(duì)應(yīng)的事件結(jié)構(gòu)指針,以下說(shuō)明各事件類型的分類及其對(duì)應(yīng)事件結(jié)構(gòu)體。typedefunionGS3D_EventData{GS3D_DeviceStateEventDataInfodevicestate_eventdata;GS3D_DeviceInputEventDataInfodeviceinput_eventdata;GS3D_EyeDetectionEventDataInfoeyedetection_eventdata;GS3D_DeviceIpdEventDataInfodeviceipd_eventdata;}GS3D_EventData;GSGF3D應(yīng)用渲染概述GSGF3D應(yīng)用程序必須先完成渲染器的實(shí)例創(chuàng)建及初始,才可以提供GSGF3D應(yīng)用程序后續(xù)渲染循環(huán)所需求的功能。在GSGF3D應(yīng)用程序不再使用此渲染器時(shí),應(yīng)用程序必須停止GSGF3D渲染器并銷毀實(shí)例,將資源返回系統(tǒng),此流程即是GSGF3D渲染器的生命周期。創(chuàng)建及初始化渲染器實(shí)例[枚舉]GS3D_Graphics_Type(圖形API類型)圖形API類型定義見(jiàn)表1。表1圖形API類型名稱數(shù)值描述GS3D_Graphics_OpenGLES0OpenGLES[結(jié)構(gòu)體]GS3D_RendererHandleCreateInfo(渲染器初始信息)typedefstructGS3D_RendererHandleCreateInfo{void*next;GS3D_Graphics_TypegraphicsType;}GS3D_RendererHandleCreateInfo;說(shuō)明:渲染器初始信息結(jié)構(gòu)體,用以描述創(chuàng)建渲染器需求的初始信息成員:next預(yù)留指針graphicsType圖形API類型[函數(shù)]GS3D_CreateRendererHandle(創(chuàng)建渲染器)GS3D_ResultGS3D_CreateRendererHandle(GS3D_Instanceinstance,constGS3D_RendererHandleCreateInfo*createInfo,GS3D_RendererHandle*renderer);說(shuō)明:創(chuàng)建渲染器參數(shù):[in]instanceGS3D_Instance句柄,由GS3D_CreateInstance獲取[in]createInfo指向GS3D_RendererHandleCreateInfo結(jié)構(gòu)體,內(nèi)含渲染器初始信息[out]renderer指向GS3D_RendererHandle句柄的指針,渲染器創(chuàng)建成功輸出一有效句柄,創(chuàng)建失敗輸出GS3D_NULL_HANDLE返回值:GS3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Function_UnsupportedGS3D_Error_Handle_InvalidGS3D_Error_Argument_InvalidGS3D_Error_Out_Of_MemoryGS3D_Error_Instance_Unavailable備注:無(wú)銷毀渲染器實(shí)例[函數(shù)]GS3D_DestroyRendererHandle(銷毀渲染器)GS3D_ResultGS3D_DestroyRendererHandle(GS3D_RendererHandle renderer);說(shuō)明:銷毀渲染器參數(shù):[in]rendererGS3D_RendererHandle句柄,由GS3D_CreateRendererHandle獲取返回值:GS3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Handle_InvalidGS3D_Error_Call_Flow_InvalidGS3D_Error_Instance_Unavailable備注:無(wú)視圖集配置[結(jié)構(gòu)體]GS3D_ViewSetConfigurationInfo(視圖集配置)typedefstructGS3D_ViewSetConfigurationInfo{void*next;uint32_tdisplayWidth;uint32_tdisplayHeight;uint32_tfps;uint32_tIpd;floatfovHRad;floatfovVRad;}GS3D_ViewSetConfigurationInfo;說(shuō)明:視圖集配置結(jié)構(gòu)體,用以描述對(duì)應(yīng)于顯示設(shè)備的視圖參數(shù)成員:next預(yù)留指針displayWidth顯示器寬度displayHeight顯示器高度f(wàn)ps渲染幀率ipd瞳距單位毫米fovHRad水平FOV單位弧度f(wàn)ovVRad垂直Fov單位弧度[函數(shù)]GS3D_CheckViewSetConfiguration(查詢視圖集配置)GS3D_ResultGS3D_CheckViewSetConfiguration(GS3D_Instanceinstance,GS3D_ViewSetConfigurationInfo*configurations);說(shuō)明:查詢視圖集配置參數(shù):[in]instanceGS3D_Instance句柄,由GS3D_CreateInstance獲取[out]configurations視圖集配置信息返回值:GS3D_Result_SuccessGS3D_Error_Handle_InvalidGS3D_Error_Instance_UnavailableGS3D_Error_Renderer_Unavailable備注:無(wú)渲染循環(huán)的開(kāi)始與停止[枚舉]GS3D_ColorSpaceType(顏色空間)顏色空間定義見(jiàn)表2。表2顏色空間名稱數(shù)值描述GS3D_ColorSpace_sRGB1sRGBGS3D_ColorSpqce_Linear2Linear[結(jié)構(gòu)體]GS3D_Render_Pipeline_Info(渲染循環(huán)管線信息結(jié)構(gòu)體)typedefstructGS3D_Render_Pipeline_Info{void*next;void*eglDisplay;void*eglContext;void*androsAppNativeWindow;GS3D_ColorSpaceTypecolorSpace;}GS3D_Render_Pipeline_Info;說(shuō)明:渲染循環(huán)開(kāi)始資訊結(jié)構(gòu)體,用以描述渲染循環(huán)起始參數(shù)成員:next預(yù)留指針eglDisplayOpenGLESEGLDisplayeglContextOpenGLESEGLContextandrosAppNativeWindow應(yīng)用的ANativeWindowcolorSpace應(yīng)用的顏色空間配置[函數(shù)]GS3D_BeginRenderSession(開(kāi)始渲染循環(huán))GS3D_ResultGS3D_BeginRenderSession(GS3D_RendererHandlerendererHandle,constGS3D_Render_Pipeline_Info*beginInfo,GS3D_RenderSessionHandle*session);說(shuō)明:開(kāi)始渲染循環(huán)參數(shù):[in]rendererHandleGS3D_Renderer句柄,由GS3D_CreateRenderer獲取[in]beginInfo指向GS3D_Render_Pipeline_Info結(jié)構(gòu)體,內(nèi)含渲染管線信息[out]session渲染循環(huán)創(chuàng)建成功輸出一個(gè)有效句柄,創(chuàng)建失敗輸出GS3D_NULL_HANDLE返回值:GS3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Handle_InvalidGS3D_Error_Argument_InvalidGS3D_Error_Out_Of_MemoryGS3D_Error_Instance_UnavailableGS3D_Error_Renderer_Unavailable備注:無(wú)[函數(shù)]GS3D_EndRenderSession(停止渲染循環(huán))GS3D_ResultGS3D_EndRenderSession(GS3D_RenderSessionHandle sessionHandle);說(shuō)明:停止渲染循環(huán)參數(shù):[in]sessionGS3D_RenderSessionHandle句柄,由GS3D_BeginRenderSession獲取返回值:GS3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Handle_InvalidGS3D_Error_Call_Flow_InvalidGS3D_Error_Instance_UnavailableGS3D_Error_Renderer_Unavailable備注:無(wú)幀同步與視圖位姿[函數(shù)]GS3D_WaitRenderSession(等待調(diào)節(jié)幀渲染時(shí)機(jī))GS3D_ResultGS3D_WaitRenderSession(GS3D_RenderSessionHandlesessionHandle,GS3D_Time*predictedTime);說(shuō)明:等待調(diào)節(jié)幀渲染時(shí)機(jī),并輸出渲染幀的預(yù)測(cè)顯示時(shí)間,GSGF3D應(yīng)用需依據(jù)此時(shí)間獲取對(duì)應(yīng)姿態(tài)進(jìn)行渲染參數(shù):[in]sessionHandleGS3D_RenderSessionHandle句柄,由GS3D_BeginRenderSession獲取[out]predictedTime輸出應(yīng)用渲染此幀后的預(yù)測(cè)顯示時(shí)間返回值:GS3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Handle_InvalidGS3D_Error_Argument_InvalidGS3D_Error_Instance_UnavailableGS3D_Error_Renderer_Unavailable備注:無(wú)[結(jié)構(gòu)體]GS3D_Fovf(視場(chǎng)角)typedefstructGS3D_Fovf{floatangleLeft;floatangleRight;floatangleUp;floatangleDown;}GS3D_Fovf;說(shuō)明:視場(chǎng)角結(jié)構(gòu)體,用以描述視圖位姿可見(jiàn)的視圖區(qū)域范圍成員:angleLeft左視場(chǎng)角,單位為弧度angleRight右視場(chǎng)角,單位為弧度angleUp上視場(chǎng)角,單位為弧度angleDown下視場(chǎng)角,單位為弧度[結(jié)構(gòu)體]GS3D_ViewSpaceStateInfo(視圖姿態(tài))typedefstructGS3D_ViewSpaceStateInfo{GS3D_Posefpose;GS3D_Fovffov;}GS3D_ViewSpaceStateInfo;說(shuō)明:視圖姿態(tài)結(jié)構(gòu)體,用以描述視圖位姿及其可見(jiàn)視場(chǎng)角成員:pose位姿結(jié)構(gòu)體fov視場(chǎng)角結(jié)構(gòu)體[函數(shù)]GS3D_CheckViewSpaceState(獲取視圖于指定時(shí)間的姿態(tài))GS3D_ResultGS3D_CheckViewSpaceState(GS3D_RenderSessionHandlesessionHandle,GS3D_TimespecifiedTime,GS3D_ViewSpaceStateInfo*viewSpaceState);說(shuō)明:獲取視圖于指定時(shí)間的姿態(tài)參數(shù):[in]sessionHandleGS3D_RenderSessionHandle句柄,由GS3D_BeginRenderSession獲取[in]specifiedTime指定時(shí)間[out]viewSpaceState指向GS3D_ViewSpaceStateInfo結(jié)構(gòu)體指針?lè)祷刂担篏S3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Handle_InvalidGS3D_Error_Argument_InvalidGS3D_Error_Instance_UnavailableGS3D_Error_Renderer_Unavailable備注:無(wú)更新視圖合成信息[枚舉]GS3D_Input_View_Type(輸入視圖類型)輸入視圖類型定義見(jiàn)表3。表3輸入視圖類型名稱數(shù)值描述GS3D_View_Type_2D_Mono12D單視圖GS3D_View_Type_3D_SBS23D左右視圖GS3D_View_Type_3D_UpDown33D上下視圖[枚舉]GS3D_Display_View_Type(輸出顯示視圖類型)輸出顯示視圖類型)定義見(jiàn)表4。表4輸出顯示視圖類型名稱數(shù)值描述GS3D_Display_View_Type_2D12D視圖顯示GS3D_Display_View_Type_3D23D視圖顯示[枚舉]GS3D_Output_Scale_Type(輸出屏幕比例)輸出屏幕比例定義見(jiàn)表5。表5輸出屏幕比例名稱數(shù)值描述GS3D_Output_Scale_Full_Screen0滿屏GS3D_Output_Scale_Norm1標(biāo)準(zhǔn)GS3D_Output_Scale_Full_Width2全寬[枚舉]GS3D_Display_Orientation_Type(屏幕方向)屏幕方向定義見(jiàn)表6。表6屏幕方向名稱數(shù)值描述GS3D_Display_Orientation_Landscape0橫屏GS3D_Display_Orientation_Portrait1豎屏[結(jié)構(gòu)體]GS3D_ViewCompositionInfo(渲染幀提交信息)typedefstructGS3D_ViewCompositionInfo{void*next;GS3D_Display_View_TypedisplayViewType;GS3D_Output_Scale_TypeoutScaleType;GS3D_Display_OrientationTypeorientationType;GS3D_Input_View_TypeinputViewType;}GS3D_ViewCompositionInfo;說(shuō)明:渲染幀提交信息結(jié)構(gòu)體,用以描述渲染幀的合成層信息成員:next預(yù)留指針GS3D_Display_View_Type在顯示器上視圖顯示類型GS3D_Output_Scale_Type輸出屏幕比例GS3D_Display_Orientation_Type屏幕方向GS3D_Input_View_Type輸入紋理內(nèi)容的視圖類型[函數(shù)]GS3D_UpdateViewCompositionInfo(更新視圖合成信息)GS3D_ResultGS3D_UpdateViewCompositionInfo(GS3D_RenderSessionHandlesessionHandle,constGS3D_ViewCompositionInfo*viewCompositionInfo);說(shuō)明:更新視圖合成信息,包含屏幕方向,輸出比例,要顯示的類型等信息參數(shù):[in]sessionHandleGS3D_RenderSessionHandle句柄,由GS3D_BeginRenderSession獲取[in]viewCompositionInfo指向GS3D_ViewCompositionInfo結(jié)構(gòu)體指針?lè)祷刂担篏S3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Handle_InvalidGS3D_Error_Argument_InvalidGS3D_Error_Call_Flow_InvalidGS3D_Error_Instance_UnavailableGS3D_Error_Renderer_Unavailable備注:無(wú)[枚舉]GS3D_Input_Texture_Type(輸入紋理類型)輸入紋理類型定義見(jiàn)表7。表7輸入紋理類型名稱數(shù)值描述GS3D_Input_Texture_OES1OES紋理類型GS3D_Input_Texture_Texture2D2Texture2D紋理類型GS3D_Input_Texture_Texture2D_Array3Texture2DArray紋理類型[枚舉]GS3D_Eye_View_Type(視圖類型)視圖類型定義見(jiàn)表8。表8視圖類型名稱數(shù)值描述GS3D_Eye_View_Left1左視圖GS3D_Eye_View_Right2右視圖GS3D_Eye_View_Both3左右視圖[結(jié)構(gòu)體]GS3D_TextureSubImageInfo(紋理信息結(jié)構(gòu)體)typedefstructGS3D_TextureSubImageInfo{void*next;GS3D_TextureHandletexture;int32_twidth;int32_theight;uint32_tarrayLayerIndex;GS3D_Input_Texture_TypetextureType;}GS3D_TextureSubImageInfo;說(shuō)明:用于描述提交的紋理數(shù)據(jù)信息成員:next保留指針texture紋理句柄width紋理寬度height紋理高度arrayLayerIndexarrayLayer類型的紋理的索引,非array類型紋理為0值textureType紋理的類型(見(jiàn)GS3D_Input_Texture_Type)[結(jié)構(gòu)體]GS3D_CompositionLayerViewInfo(合成層視圖信息結(jié)構(gòu)體)typedefstructGS3D_CompositionLayerViewInfo{void*next;GS3D_TextureSubImageInfotexSubImage;GS3D_Eye_View_TypeeyeViewMask;}GS3D_CompositionLayerViewInfo;說(shuō)明:用于描述提交層的數(shù)據(jù)信息成員:next保留指針texSubImage提交的紋理信息eyeViewMask視圖類型[結(jié)構(gòu)體]GS3D_CompositionSubmitInfo(提交的合成數(shù)據(jù)信息結(jié)構(gòu)體)typedefstructGS3D_CompositionSubmitInfo{void*next;GS3D_ViewSpaceStateInfoviewSpaceState;uint32_tviewCount;constGS3D_CompositionLayerViewInfo*viewsInfos;floatTransformMatrix[16];}GS3D_CompositionSubmitInfo;說(shuō)明:用于描述用于合成提交的數(shù)據(jù)信息成員:next保留指針viewSpaceState提交位姿信息viewCount視圖個(gè)數(shù)viewsInfos視圖數(shù)據(jù)信息數(shù)組TransformMatrixOES紋理變換矩陣:(Columnmajoruvtransformmatrixdata.Appliestovideotextures(seeSurfaceTexture::getTransformMatrix())[函數(shù)]GS3D_SubmitComposition(提交渲染幀)GS3D_ResultGS3D_SubmitComposition(GS3D_RenderSessionHandlesessionHandle,constGS3D_CompositionSubmitInfo*submitInfo);說(shuō)明:提交應(yīng)用的渲染幀信息給Instance渲染管線進(jìn)行后續(xù)處理參數(shù):[in]sessionHandleGS3D_RenderSessionHandle句柄,由GS3D_BeginRenderSession獲取[in]submitInfo指向GS3D_CompositionSubmitInfo結(jié)構(gòu)體返回值:GS3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Handle_InvalidGS3D_Error_Argument_InvalidGS3D_Error_Call_Flow_InvalidGS3D_Error_Instance_UnavailableGS3D_Error_Renderer_Unavailable備注:無(wú)GSGF3D應(yīng)用交互輸入設(shè)備類型概述GSGF3D應(yīng)用根據(jù)主要交互行為來(lái)區(qū)分設(shè)備類型,且設(shè)備根據(jù)自身的設(shè)計(jì)及特性,也可以在設(shè)備上接入數(shù)目及類型不等的輸入部件。[枚舉]GS3D_Input_DeviceType(交互設(shè)備類型)交互設(shè)備類型定義見(jiàn)表9。表9交互設(shè)備類型名稱數(shù)值描述GS3D_Input_DeviceType_Display1顯示器GS3D_Input_DeviceType_Controller_Right2右手手柄控制器GS3D_Input_DeviceType_Controller_Left3左手手柄控制器GS3D_Input_DeviceType_Eye4人眼[枚舉]GS3D_InputId(搖桿控制器按鍵)搖桿控制器按鍵定義見(jiàn)表10。表10搖桿控制器按鍵名稱數(shù)值描述GS3D_InputId_Enter1確認(rèn)鍵IDGS3D_InputId_Back2返回鍵IDGS3D_InputId_Menu3菜單鍵或自定義功能鍵GS3D_InputId_Thumbstick4母子搖桿或者觸摸板軸值鍵[函數(shù)]GS3D_CheckSupportedDevices(獲取支持的設(shè)備類型)GS3D_ResultGS3D_CheckSupportedDevices(GS3D_Instanceinstance,GS3D_Flags64*deviceTypeFlags);說(shuō)明:獲取當(dāng)前支持的所有設(shè)備類型參數(shù):[in]instanceGS3D_Instance句柄,由GS3D_CreateInstance獲取[out]deviceTypeFlags指向GS3D_Flags64數(shù)值的指針,數(shù)值為GS3D_Input_DeviceType的位掩碼,輸出可支持的所有設(shè)備類型返回值:GS3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Handle_InvalidGS3D_Error_Instance_Unavailable備注:無(wú)設(shè)備連線狀態(tài)概述在GSGF3D應(yīng)用程序開(kāi)始使用GSGF3D設(shè)備之前,GSGF3D設(shè)備必須先進(jìn)行連線并完成初始化,此段流程由GSGF3D設(shè)備插件與GSGF3DInstance交互進(jìn)行,并在GSGF3DInstance完成設(shè)備初始化后發(fā)送GS3D_EventType_DeviceState_Connected事件通知GSGF3D應(yīng)用程序,隨后GSGF3D應(yīng)用程序始能對(duì)于該連線設(shè)備進(jìn)行其設(shè)備函數(shù)操作。[函數(shù)]GS3D_CheckDeviceConnected(獲取設(shè)備連線狀態(tài))GS3D_ResultGS3D_CheckDeviceConnected(GS3D_Instanceinstance,GS3D_Input_DeviceTypdeviceType,GS3D_Bool32*connected);說(shuō)明:獲取設(shè)備連線狀態(tài)參數(shù):[in]instanceGS3D_Instance句柄,由GS3D_CreateInstance獲取[in]deviceType指定設(shè)備類型[out]connected指向GS3D_Bool32數(shù)值的指針,數(shù)值輸出GS3D_TRUE表示已連線,GS3D_FALSE表示未連線返回值:GS3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Function_UnsupportedGS3D_Error_Handle_InvalidGS3D_Error_Argument_InvalidGS3D_Error_Instance_Unavailable備注:無(wú)輸入部件概述輸入部件是GSGF3D設(shè)備在硬件設(shè)計(jì)上提供用戶輸入的交互人機(jī)界面,GSGF3D應(yīng)用程序根據(jù)自身的設(shè)計(jì)需求使用相應(yīng)的輸入部件,提供用戶與內(nèi)容進(jìn)行交互。同樣地,GSGF3D設(shè)備所具備的輸入部件配置將會(huì)影響應(yīng)用內(nèi)容的操作行為。為使GSGF3D應(yīng)用程序明確獲知GSGF3D設(shè)備的輸入部件能力及配置,GSGF3D提供以下輸入部件定義及函數(shù),GSGF3D應(yīng)用程序可根據(jù)設(shè)備不同的輸入部件能力,設(shè)計(jì)相對(duì)應(yīng)的內(nèi)容交互方式,提高GSGF3D應(yīng)用在不同輸入設(shè)備上的泛用性。[枚舉]GS3D_InputId_InputType(輸入部件Id支持的輸入類型)輸入部件Id支持的輸入類型定義見(jiàn)表11。表11輸入部件Id支持的輸入類型名稱數(shù)值描述GS3D_InputId_InputType_Click0x00000001點(diǎn)擊類GS3D_InputId_InputType_Touch0x00000002觸摸類GS3D_InputId_InputType_Analog_1D0x00000004類比類-一維數(shù)據(jù)GS3D_InputId_InputType_Analog_2D0x00000008類比類-二維數(shù)據(jù)[函數(shù)]GS3D_CheckInputIdConfiguration(獲取輸入部件具備的輸入類型配置)GS3D_ResultGS3D_CheckInputIdConfiguration(GS3D_Instanceinstance,GS3D_Input_DeviceTypedeviceType,GS3D_InputIdinputId,GS3D_Flags64*configuration);說(shuō)明:獲取設(shè)備輸入部件所具備的輸入類型配置參數(shù):[in]instanceGS3D_Instance句柄,由GS3D_CreateInstance獲取[in]deviceType指定GS3D_Input_DeviceType設(shè)備類型[in]inputId指定輸入部件Id,GS3D_InputId類型下InputId[out]configuration指向GS3D_Flags64數(shù)值的指針,數(shù)值為GS3D_InputId_InputType的位掩碼,輸出此輸入部件所具備的輸入類型配置返回值:GS3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Function_UnsupportedGS3D_Error_Device_DisconnectedGS3D_Error_Handle_InvalidGS3D_Error_Argument_InvalidGS3D_Error_Instance_Unavailable備注:無(wú)獲取輸入狀態(tài)數(shù)據(jù)概述在GS3DInstance完成輸入部件的配對(duì)之后,Instance便可允許GS3D設(shè)備的輸入部件數(shù)據(jù)傳遞至GS3D應(yīng)用程序中。GS3D應(yīng)用程序獲取GS3D設(shè)備輸入部件狀態(tài)數(shù)據(jù)的方式有以下兩種:GS3D提供三類函數(shù)獲取點(diǎn)擊狀態(tài)、觸摸狀態(tài)、及類比數(shù)據(jù)?!{(diào)用GS3D_CheckInputClickStates獲取指定輸入部件下的所有點(diǎn)擊狀態(tài)。——調(diào)用GS3D_CheckInputTouchStates獲取指定輸入部件下的所有觸摸狀態(tài)。——調(diào)用GS3D_CheckInputAnalogState獲取指定輸入部件的類比數(shù)據(jù)。[函數(shù)]GS3D_CheckInputClickStatesGS3D_ResultGS3D_CheckInputClickStates(GS3D_Instanceinstance,GS3D_Input_DeviceTypedeviceType,GS3D_Flags64*clicks);說(shuō)明:獲取設(shè)備輸入部件的點(diǎn)擊狀態(tài)參數(shù):[in]instanceGS3D_Instance句柄,由GS3D_CreateInstance獲取[in]deviceType指定GS3D_Input_DeviceType設(shè)備類型[out]clicks指向GS3D_Flags64數(shù)值之指針,數(shù)值按輸入類型下的輸入部件(1<<Id)為位掩碼儲(chǔ)存InputId的點(diǎn)擊狀態(tài)信息返回值:GS3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Function_UnsupportedGS3D_Error_Device_DisconnectedGS3D_Error_Handle_InvalidGS3D_Error_Argument_InvalidGS3D_Error_Call_Flow_InvalidGS3D_Error_Instance_Unavailable備注:無(wú)[函數(shù)]GS3D_CheckInputTouchStates(獲取設(shè)備輸入部件觸摸狀態(tài))GS3D_ResultGS3D_CheckInputTouchStates(GS3D_Instanceinstance,GS3D_Input_DeviceTypedeviceType,GS3D_Flags64*touchs);說(shuō)明:獲取設(shè)備輸入部件的觸摸狀態(tài)參數(shù):[in]instanceGS3D_Instance句柄,由GS3D_CreateInstance獲取[in]deviceType指定GS3D_Input_DeviceType設(shè)備類型[out]touchs指向GS3D_Flags64數(shù)值的指針,數(shù)值按輸入類型下的輸入部件(1<<Id)為位掩碼儲(chǔ)存InputId的觸摸狀態(tài)信息返回值:GS3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Function_UnsupportedGS3D_Error_Device_DisconnectedGS3D_Error_Handle_InvalidGS3D_Error_Argument_InvalidGS3D_Error_Call_Flow_InvalidGS3D_Error_Instance_Unavailable備注:無(wú)[函數(shù)]GS3D_CheckInputAnalogState(獲取設(shè)備輸入部件類比數(shù)據(jù))GS3D_ResultGS3D_CheckInputAnalogState(GS3D_Instanceinstance,GS3D_Input_DeviceTypedeviceType,GS3D_InputIdinputId,GS3D_Vector2f*analog);說(shuō)明:獲取設(shè)備輸入部件的類比數(shù)據(jù)參數(shù):[in]instanceGS3D_Instance句柄,由GS3D_CreateInstance獲取[in]deviceType指定GS3D_Input_DeviceType設(shè)備類型[in]inputId指定輸入部件Id[out]analog指向二維矢量GS3D_Vector2f結(jié)構(gòu)體的指針,數(shù)據(jù)范圍見(jiàn)備注說(shuō)明返回值:GS3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Function_UnsupportedGS3D_Error_Device_DisconnectedGS3D_Error_Handle_InvalidGS3D_Error_Argument_InvalidGS3D_Error_Call_Flow_InvalidGS3D_Error_Instance_Unavailable備注:無(wú)輸出震動(dòng)反饋概述振動(dòng)反饋是一種利用觸覺(jué)體驗(yàn)與用戶進(jìn)行交互的方法,通常用于手柄設(shè)備。要實(shí)現(xiàn)振動(dòng)反饋,GSGF3D設(shè)備在硬件設(shè)計(jì)上必須配置振動(dòng)模組,使GSGF3D應(yīng)用程序在內(nèi)容的運(yùn)用上,可以在適當(dāng)時(shí)機(jī)能夠驅(qū)動(dòng)GSGF3D設(shè)備輸出振動(dòng)反饋,用來(lái)強(qiáng)化GSGF3D內(nèi)容的交互體驗(yàn)。[結(jié)構(gòu)體]GS3D_HapticVibrationInfo(振動(dòng)反饋)typedefstructGS3D_HapticVibrationInfo{void*next;uint32_tduration;uint32_tfrequency;floatintensity;}GS3D_HapticVibrationInfo;說(shuō)明:振動(dòng)反饋結(jié)構(gòu)體,用來(lái)描述振動(dòng)反饋的需求成員:next預(yù)留指針duration振動(dòng)時(shí)長(zhǎng),單位為毫秒frequency振動(dòng)次數(shù)intensity振動(dòng)強(qiáng)度,數(shù)據(jù)介于0–1[函數(shù)]GS3D_CheckTriggerVibration(觸發(fā)設(shè)備振動(dòng)反饋)GS3D_ResultGS3D_CheckTriggerVibration(GS3D_Instanceinstance,GS3D_Input_DeviceTypedeviceType,constGS3D_HapticVibrationInfo*haptics);說(shuō)明:觸發(fā)設(shè)備振動(dòng)反饋,可自行設(shè)置時(shí)長(zhǎng),次數(shù),強(qiáng)度,也可以交由系統(tǒng)觸發(fā)一個(gè)適合當(dāng)前設(shè)備強(qiáng)度適中的短振動(dòng)參數(shù):[in]instanceGS3D_Instance句柄,由GS3D_CreateInstance獲取[in]deviceType指定設(shè)備類型[in]haptics指向GS3D_HapticVibrationInfo結(jié)構(gòu)體的指針?lè)祷刂担篏S3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Function_UnsupportedGS3D_Error_Device_DisconnectedGS3D_Error_Handle_InvalidGS3D_Error_Argument_InvalidGS3D_Error_Instance_Unavailable備注:無(wú)設(shè)備空間追蹤概述定義設(shè)備在虛擬環(huán)境中的空間追蹤能力信息。[枚舉]GS3D_DegreeOfFreedomType(空間自由度跟蹤能力)空間自由度跟蹤能力定義見(jiàn)表12。表12空間自由度跟蹤能力名稱數(shù)值描述GS3D_DegreeOfFreedom_None0無(wú)空間跟蹤能力GS3D_DegreeOfFreedom_3DOF1只具備旋轉(zhuǎn)跟蹤能力GS3D_DegreeOfFreedom_6DOF2兼?zhèn)湫D(zhuǎn)及位移跟蹤能力[枚舉]GS3D_SpaceOriginType(空間原點(diǎn)類型)空間原點(diǎn)類型定義見(jiàn)表13。表13空間原點(diǎn)類型名稱數(shù)值描述GS3D_Origin_OnHead0原點(diǎn)始于設(shè)備本身(通常用于”沒(méi)有地板平面”的內(nèi)容)GS3D_Origin_OnFloor1原點(diǎn)考慮身高,校準(zhǔn)至地板上(通常用于”有地板平面”的內(nèi)容,需搭配設(shè)備的空間校準(zhǔn)程序)[結(jié)構(gòu)體]GS3D_Posef(位姿結(jié)構(gòu)體)typedefstructGS3D_Posef{GS3D_Vector3fposition;GS3D_Quaternionforientation;}GS3D_Posef;說(shuō)明:描述位姿信息成員:Position位置信息Orientation旋轉(zhuǎn)信息[結(jié)構(gòu)體]GS3D_Velocityf(速度信息結(jié)構(gòu)體)typedefstructGS3D_Velocityf{GS3D_Vector3flinearVelocity;GS3D_QuaternionfangularVelocity;}GS3D_Velocityf;說(shuō)明:描述速度信息成員:linearVelocity線速度信息angularVelocity角速度信息[結(jié)構(gòu)體]GS3D_SpacePoseState(空間信息結(jié)構(gòu)體)typedefstructGS3D_SpacePoseState{GS3D_Bool32isPoseValid;GS3D_Posefpose;GS3D_Bool32isVelocityValid;GS3D_Velocityfvelocity;}GS3D_SpacePoseState;說(shuō)明:描述空間信息成員:isPoseValid位姿信息是否有效pose位姿信息isVelocityValid速度信息是否有效velocity速度信息[結(jié)構(gòu)體]GS3D_EyeSpaceState(眼追信息結(jié)構(gòu)體)typedefstructGS3D_EyeSpaceState{GS3D_PosefleftEyePose;GS3D_PosefrightEyePose;floatdistance;}GS3D_EyeSpaceState;說(shuō)明:描述眼追信息成員:leftEyePose左眼信息rightEyePose右眼信息distance眼球到屏幕的距離[函數(shù)]GS3D_CheckDegreeOfFreedom(獲取設(shè)備空間自由度跟蹤能力)GS3D_ResultGS3D_CheckDegreeOfFreedom(GS3D_Instanceinstance,GS3D_Input_DeviceTypedeviceType,GS3D_DegreeOfFreedomType*dof);[函數(shù)]GS3D_SetSpaceOrigin(設(shè)置3D應(yīng)用之空間原點(diǎn)位置類型)GS3D_ResultGS3D_SetSpaceOrigin(GS3D_Instanceinstance,GS3D_SpaceOriginTypespace);說(shuō)明:設(shè)置3D應(yīng)用之空間原點(diǎn)位置類型參數(shù):[in]instanceGS3D_Instance句柄,由GS3D_CreateInstance獲取[in]space位置類型參考GS3D_SpaceOriginType結(jié)構(gòu)體返回值:GS3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Function_UnsupportedGS3D_Error_Handle_InvalidGS3D_Error_Argument_InvalidGS3D_Error_Instance_Unavailable備注:無(wú)[函數(shù)]GS3D_SetEnableSpaceImu(開(kāi)啟終端設(shè)備IMU解算)GS3D_ResultGS3D_SetEnableSpaceImu(GS3D_Instanceinstance,boolspaceImu);說(shuō)明:設(shè)置是否開(kāi)啟設(shè)備的IMU進(jìn)行空間解算參數(shù):[in]instanceGS3D_Instance句柄,由GS3D_CreateInstance獲取[in]spaceImutrue為開(kāi)啟,false為不開(kāi)啟返回值:GS3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Function_UnsupportedGS3D_Error_Handle_InvalidGS3D_Error_Argument_InvalidGS3D_Error_Instance_Unavailable備注:無(wú)[函數(shù)]GS3D_CheckSpacePoseState(獲取設(shè)備于指定時(shí)間之位姿及速度數(shù)據(jù))GS3D_ResultGS3D_CheckSpacePoseState(GS3D_Instanceinstance,GS3D_Input_DeviceTypedeviceType,GS3D_TimespecifiedTime,GS3D_SpacePoseState*poseState);說(shuō)明:獲取設(shè)備于指定時(shí)間之位姿及速度數(shù)據(jù)參數(shù):[in]instanceGS3D_Instance句柄,由GS3D_CreateInstance獲取[in]deviceType設(shè)備類型[in]specifiedTime指定的時(shí)間[out]poseState輸出獲取到的位姿信息返回值:GS3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Function_UnsupportedGS3D_Error_Handle_InvalidGS3D_Error_Argument_InvalidGS3D_Error_Instance_Unavailable備注:無(wú)[函數(shù)]GS3D_CheckEyePoseState(獲取眼球的坐標(biāo)信息)GS3D_ResultCheckEyePoseState(GS3D_Instanceinstance,GS3D_Input_DeviceTypedeviceType,GS3D_EyeSpaceState*poseState);說(shuō)明:獲取眼球坐標(biāo)信息參數(shù):[in]instanceGS3D_Instance句柄,由GS3D_CreateInstance獲取[in]deviceType設(shè)備類型[out]poseState輸出眼球的坐標(biāo)信息返回值:GS3D_Result_SuccessGS3D_Error_Operation_FailedGS3D_Error_Function_UnsupportedGS3D_Error_Handle_InvalidGS3D_Error_Argument_InvalidGS3D_Error_Instance_Unavailable備注:無(wú)附?錄?A(資料性)接口使用說(shuō)明A.1GSGF3D應(yīng)用生命周期處理接口使用說(shuō)明A.1.1[函數(shù)名]GS3D_CreateInstance說(shuō)明如下:[參數(shù)檢驗(yàn)]createInfo必須是指向GS3D_InstanceCreateInfo的有效指針。instance必須是指向GS3D_Instance句柄的有效指針。[函數(shù)實(shí)現(xiàn)]Instance根據(jù)createInfo輸入的初始信息完成Instance初始化,并輸出有效的instance句柄。若創(chuàng)建失敗則輸出GS3D_NULL_HANDLE。[返回值]成功GS3D_Result_SuccessInstance創(chuàng)建成功。失敗GS3D_Error_Operation_FailedInstance創(chuàng)建失敗。GS3D_Error_ApplicationType_Unsupported設(shè)備未支持該應(yīng)用類型。GS3D_Error_Argument_InvalidcreateInfo為nullptr或檢驗(yàn)為無(wú)效的輸入?yún)?shù)?;騣nstance為nullptr。GS3D_Error_Out_Of_Memory內(nèi)存溢出。A.1.2[函數(shù)名]GS3D_DestroyInstance說(shuō)明如下:[參數(shù)檢驗(yàn)]instance必須是有效的GS3D_Instance句柄。[函數(shù)實(shí)現(xiàn)]Instance根據(jù)輸入的instance句柄終止并銷毀Instance。[返回值]成功GS3D_Result_SuccessInstance銷毀成功。失敗GS3D_Error_Operation_FailedInstance銷毀失敗。GS3D_Error_Handle_Invalidinstance為無(wú)效句柄。GS3D_Error_Call_Flow_Invalid調(diào)用此函數(shù)前未先行調(diào)用GS3D_CreateInstance。GS3D_Error_Instance_UnavailableInstance未處于正確工作狀態(tài)。A.1.3[函數(shù)名]GS3D_GetInstanceProperties說(shuō)明如下:[參數(shù)檢驗(yàn)]instance必須是有效的GS3D_Instance句柄。instanceProperties必須是指向GS3D_InstanceProperties結(jié)構(gòu)的有效指針。[函數(shù)實(shí)現(xiàn)]Instance將自身屬性信息填入instanceProperties中輸出。[返回值]成功GS3D_Result_SuccessInstance獲取成功。失敗GS3D_Error_Operation_FailedInstance獲取失敗。GS3D_Error_API_UnsupportedInstance未實(shí)現(xiàn)此API。GS3D_Error_Handle_Invalidinstance為無(wú)效句柄。A.2GSGF3D事件處理接口使用說(shuō)明A.2.1[函數(shù)名]GS3D_CreateRendererHandle說(shuō)明如下:[參數(shù)檢驗(yàn)]instance必須是有效的GS3D_Instance句柄。createInfo必須是指向GS3D_RendererHandleCreateInfo結(jié)構(gòu)的有效指針。renderer必須是指向GS3D_Renderer句柄的有效指針。[函數(shù)實(shí)現(xiàn)]Instance根據(jù)createInfo輸入的圖形API類型及其特化信息完成渲染器初始化,并輸出有效的renderer句柄。若創(chuàng)建失敗則輸出GS3D_NULL_HANDLE。[返回值]成功GS3D_Result_Success渲染器創(chuàng)建成功。失敗GS3D_Error_Operation_Failed渲染器創(chuàng)建失敗。GS3D_Error_Function_UnsupportedgraphicsType定義于GS3D_Graphics_Type中,但I(xiàn)nstance不支持該圖形API。GS3D_Error_Handle_Invalidinstance為無(wú)效句柄。GS3D_Error_Argument_InvalidcreateInfo為nullptr或檢驗(yàn)為無(wú)效的輸入?yún)?shù)。或renderer為nullptr。GS3D_Error_Out_Of_Memory內(nèi)存溢出。GS3D_Error_Instance_UnavailableInstance未處于正確工作狀態(tài)。A.3GSGF3D應(yīng)用渲染接口使用說(shuō)明A.3.1[函數(shù)名]GS3D_DestroyRendererHandle說(shuō)明如下:[參數(shù)檢驗(yàn)]renderer必須是有效的GS3D_Renderer句柄。[函數(shù)實(shí)現(xiàn)]Instance根據(jù)輸入的renderer句柄終止并銷毀渲染器。[返回值]成功GS3D_Result_Success渲染器銷毀成功。失敗GS3D_Error_Operation_Failed渲染器銷毀失敗。GS3D_Error_Handle_Invalidrenderer為無(wú)效句柄。GS3D_Error_Call_Flow_Invalid調(diào)用此函數(shù)前未先行調(diào)用GS3D_CreateRenderer。GS3D_Error_Instance_UnavailableInstance未處于正確工作狀態(tài)。A.3.2[函數(shù)名]GS3D_CheckViewSetConfiguration說(shuō)明如下:[參數(shù)檢驗(yàn)]instance必須是有效的GS3D_Instance句柄。configurations必須是指向GS3D_ViewSetConfigurationInfo的有效指針。[函數(shù)實(shí)現(xiàn)]獲取視圖集配置輸出。[返回值]成功GS3D_Result_Success視圖集數(shù)目獲取成功。失敗GS3D_Error_Handle_Invalidtuntime為無(wú)效句柄。GS3D_Error_Instance_UnavailableInstance未處于正確工作狀態(tài)。GS3D_Error_Renderer_Unavailable渲染器未處于正確工作狀態(tài)。A.3.3[函數(shù)名]GS3D_BeginRenderSession說(shuō)明如下:[參數(shù)檢驗(yàn)]rendererHandle必須是有效的GS3D_Renderer句柄。beginInfo必須是指向GS3D_Render_Pipeline_Info結(jié)構(gòu)的有效指針。session必須是指向GS3D_RenderSession數(shù)值的有效指針。[函數(shù)實(shí)現(xiàn)]渲染器renderer根據(jù)beginInfo資訊開(kāi)始渲染循環(huán),并將句柄填入session輸出。[返回值]成功GS3D_Result_Success渲染循環(huán)起始成功。失敗GS3D_Error_Operation_Failed渲染循環(huán)起始失敗。GS3D_Error_Handle_Invalidrenderer為無(wú)效句柄。GS3D_Error_Argument_InvalidstartInfo為nullptr或檢驗(yàn)為無(wú)效的輸入?yún)?shù)?;騭ession為nullptr。GS3D_Error_Instance_UnavailableInstance未處于正確工作狀態(tài)。GS3D_Error_Renderer_Unavailable渲染器未處于正確工作狀態(tài)。A.3.4[函數(shù)名]GS3D_EndRenderSession說(shuō)明如下:[參數(shù)檢驗(yàn)]sessionHandle必須是有效的GS3D_RenderSession句柄。[函數(shù)實(shí)現(xiàn)]渲染器停止渲染循環(huán)session。[返回值]成功GS3D_Result_Success渲染循環(huán)停止成功。失敗GS3D_Error_Operation_Failed渲染循環(huán)停止失敗。GS3D_Error_Handle_Invalidsession為無(wú)效句柄。GS3D_Error_Call_Flow_Invalid調(diào)用此函數(shù)前未先行調(diào)用GS3D_StartRenderSession。GS3D_Error_Instance_UnavailableInstance未處于正確工作狀
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年生態(tài)環(huán)境保護(hù)與治理試題及答案
- 2025年寧夏安全員B證參考題庫(kù)附+答案
- 小學(xué)數(shù)學(xué)測(cè)量實(shí)驗(yàn)操作與誤差分析課題報(bào)告教學(xué)研究課題報(bào)告
- 多價(jià)疫苗設(shè)計(jì)與個(gè)性化免疫治療結(jié)合-洞察及研究
- 薄荷酮生物膜滲透性-洞察及研究
- 地幔對(duì)流物理參數(shù)估算-洞察及研究
- 2026年旅游酒店業(yè)市場(chǎng)調(diào)研員應(yīng)聘全真模擬試題及答案解析
- 2026年房地產(chǎn)企業(yè)材料采購(gòu)員的答案集
- 高考數(shù)學(xué)情境教學(xué)與學(xué)生能力培養(yǎng)的深度融合-洞察及研究
- 2026年新媒體平臺(tái)管理面試常見(jiàn)問(wèn)題集
- 2025至2030中國(guó)面食行業(yè)市場(chǎng)深度分析及前景趨勢(shì)與投資報(bào)告
- 2026年滇池學(xué)院招聘工作人員(97人)備考題庫(kù)及答案1套
- 期末檢測(cè)卷(試題)-2025-2026學(xué)年一年級(jí)上冊(cè)數(shù)學(xué) 蘇教版
- 2026年土壤改良服務(wù)合同協(xié)議
- 2026年樂(lè)陵市市屬國(guó)有企業(yè)公開(kāi)招聘工作人員6名備考題庫(kù)參考答案詳解
- 基礎(chǔ)知識(shí)(期末復(fù)習(xí))-2024人教版八年級(jí)語(yǔ)文上冊(cè)(解析版)
- 江蘇省G4(南師大附中、天一、海安、海門)聯(lián)考2026屆高三年級(jí)12月份測(cè)試數(shù)學(xué)試卷(含答案詳解)
- 2025河北唐山市遷安市招調(diào)公務(wù)員8人備考題庫(kù)附答案
- 2025智能機(jī)器人行業(yè)產(chǎn)業(yè)鏈上下游協(xié)同發(fā)展建議
- 服飾搭配技巧培訓(xùn)課件
- 公文寫作實(shí)務(wù)及范文指導(dǎo)
評(píng)論
0/150
提交評(píng)論