Use an enum + switch statements to avoid issues/limitations with function ptrs. Renable volumes with OpenVKL when running on CPU w/ enable volumes Put both CPU and GPU modules behind CMake flags workaround odd bug with AO renderer and intervals Add spheres geometry and port to use Embree sphere point Push math constants for RNG to USM instead of in global constant WA for `Material_dispatch_getTransparency` hang, working path tracer Re-enable subdivision surfaces for CPU-only Port Texture2D to use switch statement dispatch Migrate all materials to switch dispatch Add option for large grf, does improve performance Workaround for TextureParam get3f bug Update headers and APIs for L0 interop header updates/deprecations
38 lines
706 B
C++
38 lines
706 B
C++
// Copyright 2009 Intel Corporation
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
#pragma once
|
|
|
|
#ifdef __cplusplus
|
|
#include "common/StructShared.h"
|
|
#include "rkcommon/math/vec.h"
|
|
namespace ispc {
|
|
#else
|
|
#include "rkcommon/math/vec.ih"
|
|
#endif
|
|
|
|
#if defined(__cplusplus) && !defined(OSPRAY_TARGET_DPCPP)
|
|
typedef void *LivePixelOp_processPixel;
|
|
#else
|
|
struct LivePixelOp;
|
|
|
|
typedef vec4f (*LivePixelOp_processPixel)(const LivePixelOp *uniform self,
|
|
const vec4f &color,
|
|
const float depth,
|
|
const vec3f &normal,
|
|
const vec3f &albedo);
|
|
#endif
|
|
|
|
struct LivePixelOp
|
|
{
|
|
LivePixelOp_processPixel processPixel;
|
|
|
|
#ifdef __cplusplus
|
|
LivePixelOp() : processPixel(nullptr) {}
|
|
#endif
|
|
};
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|