Blender  V3.3
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
OSLRenderServices Class Reference

#include <services.h>

Inheritance diagram for OSLRenderServices:

Public Member Functions

 OSLRenderServices (OSL::TextureSystem *texture_system)
 
 ~OSLRenderServices ()
 
bool get_matrix (OSL::ShaderGlobals *sg, OSL::Matrix44 &result, OSL::TransformationPtr xform, float time) override
 
bool get_inverse_matrix (OSL::ShaderGlobals *sg, OSL::Matrix44 &result, OSL::TransformationPtr xform, float time) override
 
bool get_matrix (OSL::ShaderGlobals *sg, OSL::Matrix44 &result, ustring from, float time) override
 
bool get_inverse_matrix (OSL::ShaderGlobals *sg, OSL::Matrix44 &result, ustring to, float time) override
 
bool get_matrix (OSL::ShaderGlobals *sg, OSL::Matrix44 &result, OSL::TransformationPtr xform) override
 
bool get_inverse_matrix (OSL::ShaderGlobals *sg, OSL::Matrix44 &result, OSL::TransformationPtr xform) override
 
bool get_matrix (OSL::ShaderGlobals *sg, OSL::Matrix44 &result, ustring from) override
 
bool get_inverse_matrix (OSL::ShaderGlobals *sg, OSL::Matrix44 &result, ustring from) override
 
bool get_array_attribute (OSL::ShaderGlobals *sg, bool derivatives, ustring object, TypeDesc type, ustring name, int index, void *val) override
 
bool get_attribute (OSL::ShaderGlobals *sg, bool derivatives, ustring object, TypeDesc type, ustring name, void *val) override
 
bool get_attribute (ShaderData *sd, bool derivatives, ustring object_name, TypeDesc type, ustring name, void *val)
 
bool get_userdata (bool derivatives, ustring name, TypeDesc type, OSL::ShaderGlobals *sg, void *val) override
 
int pointcloud_search (OSL::ShaderGlobals *sg, ustring filename, const OSL::Vec3 &center, float radius, int max_points, bool sort, size_t *out_indices, float *out_distances, int derivs_offset) override
 
int pointcloud_get (OSL::ShaderGlobals *sg, ustring filename, size_t *indices, int count, ustring attr_name, TypeDesc attr_type, void *out_data) override
 
bool pointcloud_write (OSL::ShaderGlobals *sg, ustring filename, const OSL::Vec3 &pos, int nattribs, const ustring *names, const TypeDesc *types, const void **data) override
 
bool trace (TraceOpt &options, OSL::ShaderGlobals *sg, const OSL::Vec3 &P, const OSL::Vec3 &dPdx, const OSL::Vec3 &dPdy, const OSL::Vec3 &R, const OSL::Vec3 &dRdx, const OSL::Vec3 &dRdy) override
 
bool getmessage (OSL::ShaderGlobals *sg, ustring source, ustring name, TypeDesc type, void *val, bool derivatives) override
 
TextureSystem::TextureHandle * get_texture_handle (ustring filename) override
 
bool good (TextureSystem::TextureHandle *texture_handle) override
 
bool texture (ustring filename, TextureSystem::TextureHandle *texture_handle, TexturePerthread *texture_thread_info, TextureOpt &options, OSL::ShaderGlobals *sg, float s, float t, float dsdx, float dtdx, float dsdy, float dtdy, int nchannels, float *result, float *dresultds, float *dresultdt, ustring *errormessage) override
 
bool texture3d (ustring filename, TextureHandle *texture_handle, TexturePerthread *texture_thread_info, TextureOpt &options, OSL::ShaderGlobals *sg, const OSL::Vec3 &P, const OSL::Vec3 &dPdx, const OSL::Vec3 &dPdy, const OSL::Vec3 &dPdz, int nchannels, float *result, float *dresultds, float *dresultdt, float *dresultdr, ustring *errormessage) override
 
bool environment (ustring filename, TextureHandle *texture_handle, TexturePerthread *texture_thread_info, TextureOpt &options, OSL::ShaderGlobals *sg, const OSL::Vec3 &R, const OSL::Vec3 &dRdx, const OSL::Vec3 &dRdy, int nchannels, float *result, float *dresultds, float *dresultdt, ustring *errormessage) override
 
bool get_texture_info (OSL::ShaderGlobals *sg, ustring filename, TextureHandle *texture_handle, int subimage, ustring dataname, TypeDesc datatype, void *data) override
 

Static Public Member Functions

static bool get_background_attribute (const KernelGlobalsCPU *kg, ShaderData *sd, ustring name, TypeDesc type, bool derivatives, void *val)
 
static bool get_object_standard_attribute (const KernelGlobalsCPU *kg, ShaderData *sd, ustring name, TypeDesc type, bool derivatives, void *val)
 

Public Attributes

OSL::TextureSystem * texture_system
 
OSLTextureHandleMap textures
 

Static Public Attributes

static ustring u_distance
 
static ustring u_index
 
static ustring u_world
 
static ustring u_camera
 
static ustring u_screen
 
static ustring u_raster
 
static ustring u_ndc
 
static ustring u_object_location
 
static ustring u_object_color
 
static ustring u_object_alpha
 
static ustring u_object_index
 
static ustring u_geom_dupli_generated
 
static ustring u_geom_dupli_uv
 
static ustring u_material_index
 
static ustring u_object_random
 
static ustring u_particle_index
 
static ustring u_particle_random
 
static ustring u_particle_age
 
static ustring u_particle_lifetime
 
static ustring u_particle_location
 
static ustring u_particle_rotation
 
static ustring u_particle_size
 
static ustring u_particle_velocity
 
static ustring u_particle_angular_velocity
 
static ustring u_geom_numpolyvertices
 
static ustring u_geom_trianglevertices
 
static ustring u_geom_polyvertices
 
static ustring u_geom_name
 
static ustring u_geom_undisplaced
 
static ustring u_is_smooth
 
static ustring u_is_curve
 
static ustring u_curve_thickness
 
static ustring u_curve_length
 
static ustring u_curve_tangent_normal
 
static ustring u_curve_random
 
static ustring u_is_point
 
static ustring u_point_position
 
static ustring u_point_radius
 
static ustring u_point_random
 
static ustring u_normal_map_normal
 
static ustring u_path_ray_length
 
static ustring u_path_ray_depth
 
static ustring u_path_diffuse_depth
 
static ustring u_path_glossy_depth
 
static ustring u_path_transparent_depth
 
static ustring u_path_transmission_depth
 
static ustring u_trace
 
static ustring u_hit
 
static ustring u_hitdist
 
static ustring u_N
 
static ustring u_Ng
 
static ustring u_P
 
static ustring u_I
 
static ustring u_u
 
static ustring u_v
 
static ustring u_empty
 
static ustring u_at_bevel
 
static ustring u_at_ao
 

Detailed Description

Definition at line 74 of file services.h.

Constructor & Destructor Documentation

◆ OSLRenderServices()

OSLRenderServices::OSLRenderServices ( OSL::TextureSystem *  texture_system)

Definition at line 127 of file services.cpp.

◆ ~OSLRenderServices()

OSLRenderServices::~OSLRenderServices ( )

Definition at line 132 of file services.cpp.

References texture_system, and VLOG_INFO.

Member Function Documentation

◆ environment()

bool OSLRenderServices::environment ( ustring  filename,
TextureHandle *  texture_handle,
TexturePerthread *  texture_thread_info,
TextureOpt &  options,
OSL::ShaderGlobals *  sg,
const OSL::Vec3 &  R,
const OSL::Vec3 &  dRdx,
const OSL::Vec3 &  dRdy,
int  nchannels,
float result,
float dresultds,
float dresultdt,
ustring *  errormessage 
)
override

◆ get_array_attribute()

bool OSLRenderServices::get_array_attribute ( OSL::ShaderGlobals *  sg,
bool  derivatives,
ustring  object,
TypeDesc  type,
ustring  name,
int  index,
void val 
)
override

Definition at line 387 of file services.cpp.

◆ get_attribute() [1/2]

bool OSLRenderServices::get_attribute ( OSL::ShaderGlobals *  sg,
bool  derivatives,
ustring  object,
TypeDesc  type,
ustring  name,
void val 
)
override

Definition at line 1116 of file services.cpp.

References NULL, ShaderData, and type.

Referenced by getmessage().

◆ get_attribute() [2/2]

bool OSLRenderServices::get_attribute ( ShaderData sd,
bool  derivatives,
ustring  object_name,
TypeDesc  type,
ustring  name,
void val 
)

◆ get_background_attribute()

bool OSLRenderServices::get_background_attribute ( const KernelGlobalsCPU kg,
ShaderData sd,
ustring  name,
TypeDesc  type,
bool  derivatives,
void val 
)
static

◆ get_inverse_matrix() [1/4]

bool OSLRenderServices::get_inverse_matrix ( OSL::ShaderGlobals *  sg,
OSL::Matrix44 &  result,
OSL::TransformationPtr  xform 
)
override

◆ get_inverse_matrix() [2/4]

bool OSLRenderServices::get_inverse_matrix ( OSL::ShaderGlobals *  sg,
OSL::Matrix44 &  result,
OSL::TransformationPtr  xform,
float  time 
)
override

◆ get_inverse_matrix() [3/4]

bool OSLRenderServices::get_inverse_matrix ( OSL::ShaderGlobals *  sg,
OSL::Matrix44 &  result,
ustring  from 
)
override

Definition at line 360 of file services.cpp.

References copy_matrix(), kernel_data, result, ShaderData, u_camera, u_ndc, u_raster, and u_screen.

◆ get_inverse_matrix() [4/4]

bool OSLRenderServices::get_inverse_matrix ( OSL::ShaderGlobals *  sg,
OSL::Matrix44 &  result,
ustring  to,
float  time 
)
override

Definition at line 247 of file services.cpp.

References copy_matrix(), kernel_data, result, ShaderData, u_camera, u_ndc, u_raster, u_screen, and u_world.

◆ get_matrix() [1/4]

bool OSLRenderServices::get_matrix ( OSL::ShaderGlobals *  sg,
OSL::Matrix44 &  result,
OSL::TransformationPtr  xform 
)
override

◆ get_matrix() [2/4]

bool OSLRenderServices::get_matrix ( OSL::ShaderGlobals *  sg,
OSL::Matrix44 &  result,
OSL::TransformationPtr  xform,
float  time 
)
override

◆ get_matrix() [3/4]

bool OSLRenderServices::get_matrix ( OSL::ShaderGlobals *  sg,
OSL::Matrix44 &  result,
ustring  from 
)
override

Definition at line 335 of file services.cpp.

References copy_matrix(), from, kernel_data, result, ShaderData, u_camera, u_ndc, u_raster, and u_screen.

◆ get_matrix() [4/4]

bool OSLRenderServices::get_matrix ( OSL::ShaderGlobals *  sg,
OSL::Matrix44 &  result,
ustring  from,
float  time 
)
override

Definition at line 215 of file services.cpp.

References copy_matrix(), from, kernel_data, result, ShaderData, u_camera, u_ndc, u_raster, u_screen, and u_world.

◆ get_object_standard_attribute()

bool OSLRenderServices::get_object_standard_attribute ( const KernelGlobalsCPU kg,
ShaderData sd,
ustring  name,
TypeDesc  type,
bool  derivatives,
void val 
)
static

◆ get_texture_handle()

TextureSystem::TextureHandle * OSLRenderServices::get_texture_handle ( ustring  filename)
override

Definition at line 1199 of file services.cpp.

References NULL, OSLTextureHandle::OIIO, and textures.

◆ get_texture_info()

bool OSLRenderServices::get_texture_info ( OSL::ShaderGlobals *  sg,
ustring  filename,
TextureHandle *  texture_handle,
int  subimage,
ustring  dataname,
TypeDesc  datatype,
void data 
)
override

Definition at line 1599 of file services.cpp.

References data, dataname(), OSLTextureHandle::OIIO, and OSLTextureHandle::type.

◆ get_userdata()

bool OSLRenderServices::get_userdata ( bool  derivatives,
ustring  name,
TypeDesc  type,
OSL::ShaderGlobals *  sg,
void val 
)
override

Definition at line 1188 of file services.cpp.

◆ getmessage()

bool OSLRenderServices::getmessage ( OSL::ShaderGlobals *  sg,
ustring  source,
ustring  name,
TypeDesc  type,
void val,
bool  derivatives 
)
override

◆ good()

bool OSLRenderServices::good ( TextureSystem::TextureHandle *  texture_handle)
override

Definition at line 1229 of file services.cpp.

References OSLTextureHandle::oiio_handle, and texture_system.

◆ pointcloud_get()

int OSLRenderServices::pointcloud_get ( OSL::ShaderGlobals *  sg,
ustring  filename,
size_t *  indices,
int  count,
ustring  attr_name,
TypeDesc  attr_type,
void out_data 
)
override

Definition at line 1633 of file services.cpp.

◆ pointcloud_search()

int OSLRenderServices::pointcloud_search ( OSL::ShaderGlobals *  sg,
ustring  filename,
const OSL::Vec3 &  center,
float  radius,
int  max_points,
bool  sort,
size_t *  out_indices,
float out_distances,
int  derivs_offset 
)
override

Definition at line 1620 of file services.cpp.

◆ pointcloud_write()

bool OSLRenderServices::pointcloud_write ( OSL::ShaderGlobals *  sg,
ustring  filename,
const OSL::Vec3 &  pos,
int  nattribs,
const ustring *  names,
const TypeDesc *  types,
const void **  data 
)
override

Definition at line 1644 of file services.cpp.

◆ texture()

bool OSLRenderServices::texture ( ustring  filename,
TextureSystem::TextureHandle *  texture_handle,
TexturePerthread *  texture_thread_info,
TextureOpt &  options,
OSL::ShaderGlobals *  sg,
float  s,
float  t,
float  dsdx,
float  dtdx,
float  dsdy,
float  dtdy,
int  nchannels,
float result,
float dresultds,
float dresultdt,
ustring *  errormessage 
)
override

◆ texture3d()

bool OSLRenderServices::texture3d ( ustring  filename,
TextureHandle *  texture_handle,
TexturePerthread *  texture_thread_info,
TextureOpt &  options,
OSL::ShaderGlobals *  sg,
const OSL::Vec3 &  P,
const OSL::Vec3 &  dPdx,
const OSL::Vec3 &  dPdy,
const OSL::Vec3 &  dPdz,
int  nchannels,
float result,
float dresultds,
float dresultdt,
float dresultdr,
ustring *  errormessage 
)
override

◆ trace()

bool OSLRenderServices::trace ( TraceOpt &  options,
OSL::ShaderGlobals *  sg,
const OSL::Vec3 &  P,
const OSL::Vec3 &  dPdx,
const OSL::Vec3 &  dPdy,
const OSL::Vec3 &  R,
const OSL::Vec3 &  dRdx,
const OSL::Vec3 &  dRdy 
)
override

Member Data Documentation

◆ texture_system

OSL::TextureSystem* OSLRenderServices::texture_system

Definition at line 324 of file services.h.

Referenced by environment(), good(), texture(), texture3d(), and ~OSLRenderServices().

◆ textures

OSLTextureHandleMap OSLRenderServices::textures

Definition at line 325 of file services.h.

◆ u_at_ao

ustring OSLRenderServices::u_at_ao
static

Definition at line 318 of file services.h.

◆ u_at_bevel

ustring OSLRenderServices::u_at_bevel
static

Definition at line 317 of file services.h.

◆ u_camera

ustring OSLRenderServices::u_camera
static

Definition at line 264 of file services.h.

Referenced by get_inverse_matrix(), and get_matrix().

◆ u_curve_length

ustring OSLRenderServices::u_curve_length
static

Definition at line 293 of file services.h.

◆ u_curve_random

ustring OSLRenderServices::u_curve_random
static

Definition at line 295 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_curve_tangent_normal

ustring OSLRenderServices::u_curve_tangent_normal
static

Definition at line 294 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_curve_thickness

ustring OSLRenderServices::u_curve_thickness
static

Definition at line 292 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_distance

ustring OSLRenderServices::u_distance
static

Definition at line 261 of file services.h.

◆ u_empty

ustring OSLRenderServices::u_empty
static

Definition at line 316 of file services.h.

Referenced by get_attribute(), getmessage(), and set_attribute_string().

◆ u_geom_dupli_generated

ustring OSLRenderServices::u_geom_dupli_generated
static

Definition at line 272 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_geom_dupli_uv

ustring OSLRenderServices::u_geom_dupli_uv
static

Definition at line 273 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_geom_name

ustring OSLRenderServices::u_geom_name
static

Definition at line 288 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_geom_numpolyvertices

ustring OSLRenderServices::u_geom_numpolyvertices
static

Definition at line 285 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_geom_polyvertices

ustring OSLRenderServices::u_geom_polyvertices
static

Definition at line 287 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_geom_trianglevertices

ustring OSLRenderServices::u_geom_trianglevertices
static

Definition at line 286 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_geom_undisplaced

ustring OSLRenderServices::u_geom_undisplaced
static

Definition at line 289 of file services.h.

◆ u_hit

ustring OSLRenderServices::u_hit
static

Definition at line 308 of file services.h.

Referenced by getmessage().

◆ u_hitdist

ustring OSLRenderServices::u_hitdist
static

Definition at line 309 of file services.h.

Referenced by getmessage().

◆ u_I

ustring OSLRenderServices::u_I
static

Definition at line 313 of file services.h.

Referenced by getmessage().

◆ u_index

ustring OSLRenderServices::u_index
static

Definition at line 262 of file services.h.

◆ u_is_curve

ustring OSLRenderServices::u_is_curve
static

Definition at line 291 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_is_point

ustring OSLRenderServices::u_is_point
static

Definition at line 296 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_is_smooth

ustring OSLRenderServices::u_is_smooth
static

Definition at line 290 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_material_index

ustring OSLRenderServices::u_material_index
static

Definition at line 274 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_N

ustring OSLRenderServices::u_N
static

Definition at line 310 of file services.h.

Referenced by getmessage().

◆ u_ndc

ustring OSLRenderServices::u_ndc
static

Definition at line 267 of file services.h.

Referenced by get_background_attribute(), get_inverse_matrix(), and get_matrix().

◆ u_Ng

ustring OSLRenderServices::u_Ng
static

Definition at line 311 of file services.h.

Referenced by getmessage().

◆ u_normal_map_normal

ustring OSLRenderServices::u_normal_map_normal
static

Definition at line 300 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_object_alpha

ustring OSLRenderServices::u_object_alpha
static

Definition at line 270 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_object_color

ustring OSLRenderServices::u_object_color
static

Definition at line 269 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_object_index

ustring OSLRenderServices::u_object_index
static

Definition at line 271 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_object_location

ustring OSLRenderServices::u_object_location
static

Definition at line 268 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_object_random

ustring OSLRenderServices::u_object_random
static

Definition at line 275 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_P

ustring OSLRenderServices::u_P
static

Definition at line 312 of file services.h.

Referenced by getmessage().

◆ u_particle_age

ustring OSLRenderServices::u_particle_age
static

Definition at line 278 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_particle_angular_velocity

ustring OSLRenderServices::u_particle_angular_velocity
static

Definition at line 284 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_particle_index

ustring OSLRenderServices::u_particle_index
static

Definition at line 276 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_particle_lifetime

ustring OSLRenderServices::u_particle_lifetime
static

Definition at line 279 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_particle_location

ustring OSLRenderServices::u_particle_location
static

Definition at line 280 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_particle_random

ustring OSLRenderServices::u_particle_random
static

Definition at line 277 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_particle_rotation

ustring OSLRenderServices::u_particle_rotation
static

Definition at line 281 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_particle_size

ustring OSLRenderServices::u_particle_size
static

Definition at line 282 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_particle_velocity

ustring OSLRenderServices::u_particle_velocity
static

Definition at line 283 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_path_diffuse_depth

ustring OSLRenderServices::u_path_diffuse_depth
static

Definition at line 303 of file services.h.

Referenced by get_background_attribute().

◆ u_path_glossy_depth

ustring OSLRenderServices::u_path_glossy_depth
static

Definition at line 304 of file services.h.

Referenced by get_background_attribute().

◆ u_path_ray_depth

ustring OSLRenderServices::u_path_ray_depth
static

Definition at line 302 of file services.h.

Referenced by get_background_attribute().

◆ u_path_ray_length

ustring OSLRenderServices::u_path_ray_length
static

Definition at line 301 of file services.h.

Referenced by get_background_attribute().

◆ u_path_transmission_depth

ustring OSLRenderServices::u_path_transmission_depth
static

Definition at line 306 of file services.h.

Referenced by get_background_attribute().

◆ u_path_transparent_depth

ustring OSLRenderServices::u_path_transparent_depth
static

Definition at line 305 of file services.h.

Referenced by get_background_attribute().

◆ u_point_position

ustring OSLRenderServices::u_point_position
static

Definition at line 297 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_point_radius

ustring OSLRenderServices::u_point_radius
static

Definition at line 298 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_point_random

ustring OSLRenderServices::u_point_random
static

Definition at line 299 of file services.h.

Referenced by get_object_standard_attribute().

◆ u_raster

ustring OSLRenderServices::u_raster
static

Definition at line 266 of file services.h.

Referenced by get_inverse_matrix(), and get_matrix().

◆ u_screen

ustring OSLRenderServices::u_screen
static

Definition at line 265 of file services.h.

Referenced by get_inverse_matrix(), and get_matrix().

◆ u_trace

ustring OSLRenderServices::u_trace
static

Definition at line 307 of file services.h.

Referenced by getmessage().

◆ u_u

ustring OSLRenderServices::u_u
static

Definition at line 314 of file services.h.

Referenced by getmessage().

◆ u_v

ustring OSLRenderServices::u_v
static

Definition at line 315 of file services.h.

Referenced by getmessage().

◆ u_world

ustring OSLRenderServices::u_world
static

Definition at line 263 of file services.h.

Referenced by get_inverse_matrix(), and get_matrix().


The documentation for this class was generated from the following files: