mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-12 13:00:32 +00:00
Implement radians/degrees conversion functions
This commit is contained in:
@@ -167,6 +167,33 @@ ShaderVariable Fract(ThreadState &state, const rdcarray<Id> ¶ms)
|
||||
return var;
|
||||
}
|
||||
|
||||
static const float piOver180 = 3.14159265358979323846f / 180.0f;
|
||||
static const float piUnder180 = 180.0f / 3.14159265358979323846f;
|
||||
|
||||
ShaderVariable Radians(ThreadState &state, const rdcarray<Id> ¶ms)
|
||||
{
|
||||
CHECK_PARAMS(1);
|
||||
|
||||
ShaderVariable var = state.GetSrc(params[0]);
|
||||
|
||||
for(uint32_t c = 0; c < var.columns; c++)
|
||||
var.value.fv[c] = var.value.fv[c] * piOver180;
|
||||
|
||||
return var;
|
||||
}
|
||||
|
||||
ShaderVariable Degrees(ThreadState &state, const rdcarray<Id> ¶ms)
|
||||
{
|
||||
CHECK_PARAMS(1);
|
||||
|
||||
ShaderVariable var = state.GetSrc(params[0]);
|
||||
|
||||
for(uint32_t c = 0; c < var.columns; c++)
|
||||
var.value.fv[c] = var.value.fv[c] * piUnder180;
|
||||
|
||||
return var;
|
||||
}
|
||||
|
||||
ShaderVariable Pow(ThreadState &state, const rdcarray<Id> ¶ms)
|
||||
{
|
||||
CHECK_PARAMS(2);
|
||||
@@ -518,6 +545,8 @@ void ConfigureGLSLStd450(ExtInstDispatcher &extinst)
|
||||
EXT(Floor);
|
||||
EXT(Ceil);
|
||||
EXT(Fract);
|
||||
EXT(Radians);
|
||||
EXT(Degrees);
|
||||
EXT(Pow);
|
||||
EXT(Determinant);
|
||||
EXT(MatrixInverse);
|
||||
|
||||
@@ -571,6 +571,16 @@ void main()
|
||||
Color = vec4(float(sign(onei*2)), float(sign(negi*2)), float(sign(0)), 1.0f);
|
||||
break;
|
||||
}
|
||||
case 69:
|
||||
{
|
||||
Color = vec4(degrees(negone*2.4f), degrees(posone*2.4f), degrees(zerof), degrees(posone*34.56f));
|
||||
break;
|
||||
}
|
||||
case 70:
|
||||
{
|
||||
Color = vec4(radians(negone*164.2f), radians(posone*164.2f), radians(zerof), radians(posone*3456.78f));
|
||||
break;
|
||||
}
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user