• Main Page
  • Modules
  • Files
  • File List
  • Globals

NvFlowContext.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2014-2017, NVIDIA CORPORATION.  All rights reserved.
00003  *
00004  * NVIDIA CORPORATION and its licensors retain all intellectual property
00005  * and proprietary rights in and to this software, related documentation
00006  * and any modifications thereto.  Any use, reproduction, disclosure or
00007  * distribution of this software and related documentation without an express
00008  * license agreement from NVIDIA CORPORATION is strictly prohibited.
00009  */
00010 
00011 #pragma once
00012 
00013 #include "NvFlowTypes.h"
00014 
00015 #define NV_FLOW_VERSION 0x00010000
00016 
00018 struct NvFlowContext;
00019 
00021 enum NvFlowContextAPI
00022 {
00023     eNvFlowContextD3D11 = 1,
00024     eNvFlowContextD3D12 = 2
00025 };
00026 
00028 struct NvFlowDepthStencilView;
00029 struct NvFlowRenderTargetView;
00030 
00032 struct NvFlowResource;
00033 struct NvFlowResourceRW;
00034 struct NvFlowBuffer;
00035 struct NvFlowTexture3D;
00036 
00037 // --------------------------- NvFlowContext -------------------------------
00040 
00048 NV_FLOW_API NvFlowContextAPI NvFlowContextGetContextType(NvFlowContext* context);
00049 
00055 NV_FLOW_API void NvFlowContextFlushRequestPush(NvFlowContext* context);
00056 
00064 NV_FLOW_API bool NvFlowContextFlushRequestPop(NvFlowContext* context);
00065 
00071 NV_FLOW_API void NvFlowContextProcessFenceWait(NvFlowContext* context);
00072 
00078 NV_FLOW_API void NvFlowContextProcessFenceSignal(NvFlowContext* context);
00079 
00085 NV_FLOW_API void NvFlowReleaseContext(NvFlowContext* context);
00086 
00092 NV_FLOW_API void NvFlowReleaseDepthStencilView(NvFlowDepthStencilView* view);
00093 
00099 NV_FLOW_API void NvFlowReleaseRenderTargetView(NvFlowRenderTargetView* view);
00100 
00106 NV_FLOW_API void NvFlowContextPush(NvFlowContext* context);
00107 
00113 NV_FLOW_API void NvFlowContextPop(NvFlowContext* context);
00114 
00120 NV_FLOW_API void NvFlowSetMallocFunc(void*(*malloc)(size_t size));
00121 
00127 NV_FLOW_API void NvFlowSetFreeFunc(void(*free)(void* ptr));
00128 
00136 NV_FLOW_API NvFlowUint NvFlowDeferredRelease(float timeoutMS);
00137 
Copyright © 2014-2016 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. www.nvidia.com