forked from bartvdbraak/blender
Fix T57393: Cycles OSL bevel and AO not working after OSL upgrade.
This commit is contained in:
parent
f1673d20fa
commit
c0b3e3daeb
@ -884,6 +884,23 @@ bool OSLRenderServices::has_userdata(ustring name, TypeDesc type, OSL::ShaderGlo
|
|||||||
return false; /* never called by OSL */
|
return false; /* never called by OSL */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TextureSystem::TextureHandle *OSLRenderServices::get_texture_handle(ustring filename)
|
||||||
|
{
|
||||||
|
if (filename.length() && filename[0] == '@') {
|
||||||
|
/* Dummy, we don't use texture handles for builtin textures but need
|
||||||
|
* to tell the OSL runtime optimizer that this is a valid texture. */
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return texturesys()->get_texture_handle(filename);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool OSLRenderServices::good(TextureSystem::TextureHandle *texture_handle)
|
||||||
|
{
|
||||||
|
return texturesys()->good(texture_handle);
|
||||||
|
}
|
||||||
|
|
||||||
bool OSLRenderServices::texture(ustring filename,
|
bool OSLRenderServices::texture(ustring filename,
|
||||||
TextureHandle *texture_handle,
|
TextureHandle *texture_handle,
|
||||||
TexturePerthread *texture_thread_info,
|
TexturePerthread *texture_thread_info,
|
||||||
@ -894,7 +911,8 @@ bool OSLRenderServices::texture(ustring filename,
|
|||||||
int nchannels,
|
int nchannels,
|
||||||
float *result,
|
float *result,
|
||||||
float *dresultds,
|
float *dresultds,
|
||||||
float *dresultdt)
|
float *dresultdt,
|
||||||
|
ustring *errormessage)
|
||||||
{
|
{
|
||||||
OSL::TextureSystem *ts = osl_ts;
|
OSL::TextureSystem *ts = osl_ts;
|
||||||
ShaderData *sd = (ShaderData *)(sg->renderstate);
|
ShaderData *sd = (ShaderData *)(sg->renderstate);
|
||||||
@ -1156,7 +1174,13 @@ bool OSLRenderServices::get_texture_info(OSL::ShaderGlobals *sg, ustring filenam
|
|||||||
TypeDesc datatype, void *data)
|
TypeDesc datatype, void *data)
|
||||||
{
|
{
|
||||||
OSL::TextureSystem *ts = osl_ts;
|
OSL::TextureSystem *ts = osl_ts;
|
||||||
return ts->get_texture_info(filename, subimage, dataname, datatype, data);
|
if (filename.length() && filename[0] == '@') {
|
||||||
|
/* Special builtin textures. */
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return ts->get_texture_info(filename, subimage, dataname, datatype, data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int OSLRenderServices::pointcloud_search(OSL::ShaderGlobals *sg, ustring filename, const OSL::Vec3 ¢er,
|
int OSLRenderServices::pointcloud_search(OSL::ShaderGlobals *sg, ustring filename, const OSL::Vec3 ¢er,
|
||||||
|
@ -93,6 +93,10 @@ public:
|
|||||||
bool getmessage(OSL::ShaderGlobals *sg, ustring source, ustring name,
|
bool getmessage(OSL::ShaderGlobals *sg, ustring source, ustring name,
|
||||||
TypeDesc type, void *val, bool derivatives);
|
TypeDesc type, void *val, bool derivatives);
|
||||||
|
|
||||||
|
TextureSystem::TextureHandle *get_texture_handle(ustring filename);
|
||||||
|
|
||||||
|
bool good(TextureSystem::TextureHandle *texture_handle);
|
||||||
|
|
||||||
bool texture(ustring filename,
|
bool texture(ustring filename,
|
||||||
TextureSystem::TextureHandle *texture_handle,
|
TextureSystem::TextureHandle *texture_handle,
|
||||||
TexturePerthread *texture_thread_info,
|
TexturePerthread *texture_thread_info,
|
||||||
@ -103,7 +107,8 @@ public:
|
|||||||
int nchannels,
|
int nchannels,
|
||||||
float *result,
|
float *result,
|
||||||
float *dresultds,
|
float *dresultds,
|
||||||
float *dresultdt);
|
float *dresultdt,
|
||||||
|
ustring *errormessage);
|
||||||
|
|
||||||
bool texture3d(ustring filename,
|
bool texture3d(ustring filename,
|
||||||
TextureHandle *texture_handle,
|
TextureHandle *texture_handle,
|
||||||
|
Loading…
Reference in New Issue
Block a user