Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-09 07:49:42

0001 #pragma once
0002 /**
0003 SOPTIX_Params.h : render control 
0004 ==================================
0005 
0006 This is populated by SOPTIX::set_param
0007 
0008 cf: CSGOptiX/Params.h
0009 
0010 
0011 **/
0012 
0013 #include <optix.h>
0014 
0015 
0016 struct SOPTIX_Params
0017 { 
0018     unsigned width  ;
0019     unsigned height ;
0020     uchar4*  pixels  ;
0021 
0022     float  tmin ; 
0023     float  tmax ; 
0024 
0025     unsigned vizmask ; 
0026     unsigned cameratype ; 
0027 
0028     float3 eye;
0029     float3 U;  
0030     float3 V;  
0031     float3 W;  
0032 
0033     float3 WNORM ; 
0034     float4 ZPROJ ; 
0035 
0036     OptixTraversableHandle handle ;
0037 
0038 #ifndef __CUDACC__
0039     static SOPTIX_Params* DeviceAlloc();
0040     void upload(SOPTIX_Params* d_param);  
0041 #endif
0042 
0043 };
0044 
0045 
0046 #ifndef __CUDACC__
0047 
0048 inline SOPTIX_Params* SOPTIX_Params::DeviceAlloc()  // static 
0049 {
0050     SOPTIX_Params* d_param = nullptr ;
0051     CUDA_CHECK( cudaMalloc( reinterpret_cast<void**>( &d_param ), sizeof( SOPTIX_Params ) ) );   
0052     return d_param ; 
0053 }
0054 inline void SOPTIX_Params::upload(SOPTIX_Params* d_param)
0055 {
0056     CUDA_CHECK( cudaMemcpy( reinterpret_cast<void*>( d_param ), this, sizeof( SOPTIX_Params ), cudaMemcpyHostToDevice) );  
0057     // hmm some optix7.5 SDK examples (optixMeshViewer) using cudaMemcpyAsync for parameter upload
0058 }
0059 
0060 #endif
0061 
0062 
0063 
0064