|
|
|
|
|
|
return output; |
|
|
|
} |
|
|
|
|
|
|
|
float4 DisplayPixelInformationAtMousePosition(Varyings input, float4 result, float4 mouseResult) |
|
|
|
float4 DisplayPixelInformationAtMousePosition(Varyings input, float4 result, float4 mouseResult, float4 mousePixelCoord) |
|
|
|
if (_MousePixelCoord.z >= 0.0 && _MousePixelCoord.z <= 1.0 && _MousePixelCoord.w >= 0 && _MousePixelCoord.w <= 1.0) |
|
|
|
bool flipY = _RequireToFlipInputTexture > 0.0; |
|
|
|
|
|
|
|
if (mousePixelCoord.z >= 0.0 && mousePixelCoord.z <= 1.0 && mousePixelCoord.w >= 0 && mousePixelCoord.w <= 1.0) |
|
|
|
{ |
|
|
|
// As when we read with the color picker we don't go through the final blit (that current hardcode a conversion to sRGB) |
|
|
|
// and as our material debug take it into account, we need to a transform here. |
|
|
|
|
|
|
|
|
|
|
// Display message offset: |
|
|
|
int displayTextOffsetX = 1.5 * DEBUG_FONT_TEXT_WIDTH; |
|
|
|
#if UNITY_UV_STARTS_AT_TOP |
|
|
|
int displayTextOffsetY = -DEBUG_FONT_TEXT_HEIGHT; |
|
|
|
#else |
|
|
|
int displayTextOffsetY = DEBUG_FONT_TEXT_HEIGHT; |
|
|
|
#endif |
|
|
|
int displayTextOffsetY; |
|
|
|
if (flipY) |
|
|
|
{ |
|
|
|
displayTextOffsetY = DEBUG_FONT_TEXT_HEIGHT; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
displayTextOffsetY = -DEBUG_FONT_TEXT_HEIGHT; |
|
|
|
} |
|
|
|
uint2 displayUnormCoord = uint2(_MousePixelCoord.x + displayTextOffsetX, _MousePixelCoord.y + displayTextOffsetY); |
|
|
|
uint2 displayUnormCoord = uint2(mousePixelCoord.x + displayTextOffsetX, mousePixelCoord.y + displayTextOffsetY); |
|
|
|
uint2 unormCoord = input.positionCS.xy; |
|
|
|
|
|
|
|
if (_ColorPickerMode == COLORPICKERDEBUGMODE_BYTE || _ColorPickerMode == COLORPICKERDEBUGMODE_BYTE4) |
|
|
|
|
|
|
DrawCharacter('R', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawInteger(mouseValue.x, _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawCharacter('R', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
DrawInteger(mouseValue.x, _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
displayUnormCoord.x = _MousePixelCoord.x + displayTextOffsetX; |
|
|
|
displayUnormCoord.x = mousePixelCoord.x + displayTextOffsetX; |
|
|
|
DrawCharacter('G', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawInteger(mouseValue.y, _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
displayUnormCoord.x = _MousePixelCoord.x + displayTextOffsetX; |
|
|
|
DrawCharacter('G', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
DrawInteger(mouseValue.y, _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
displayUnormCoord.x = mousePixelCoord.x + displayTextOffsetX; |
|
|
|
DrawCharacter('B', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawInteger(mouseValue.z, _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
displayUnormCoord.x = _MousePixelCoord.x + displayTextOffsetX; |
|
|
|
DrawCharacter('B', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
DrawInteger(mouseValue.z, _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
displayUnormCoord.x = mousePixelCoord.x + displayTextOffsetX; |
|
|
|
DrawCharacter('A', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawInteger(mouseValue.w, _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawCharacter('A', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
DrawInteger(mouseValue.w, _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
DrawCharacter('X', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawFloat(mouseResult.x, _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawCharacter('X', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
DrawFloat(mouseResult.x, _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
displayUnormCoord.x = _MousePixelCoord.x + displayTextOffsetX; |
|
|
|
displayUnormCoord.x = mousePixelCoord.x + displayTextOffsetX; |
|
|
|
DrawCharacter('Y', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawFloat(mouseResult.y, _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
displayUnormCoord.x = _MousePixelCoord.x + displayTextOffsetX; |
|
|
|
DrawCharacter('Y', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
DrawFloat(mouseResult.y, _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
displayUnormCoord.x = mousePixelCoord.x + displayTextOffsetX; |
|
|
|
DrawCharacter('Z', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawFloat(mouseResult.z, _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
displayUnormCoord.x = _MousePixelCoord.x + displayTextOffsetX; |
|
|
|
DrawCharacter('Z', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
DrawFloat(mouseResult.z, _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
displayUnormCoord.x = mousePixelCoord.x + displayTextOffsetX; |
|
|
|
DrawCharacter('W', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawFloat(mouseResult.w, _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb); |
|
|
|
DrawCharacter('W', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
DrawFloat(mouseResult.w, _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
float4 result = SAMPLE_TEXTURE2D(_DebugColorPickerTexture, sampler_DebugColorPickerTexture, input.texcoord); |
|
|
|
//result.rgb = GetColorCodeFunction(result.x, _ColorPickerParam); |
|
|
|
|
|
|
|
float4 mouseResult = SAMPLE_TEXTURE2D(_DebugColorPickerTexture, sampler_DebugColorPickerTexture, _MousePixelCoord.zw); |
|
|
|
float4 mousePixelCoord = _MousePixelCoord; |
|
|
|
if (_RequireToFlipInputTexture > 0.0) |
|
|
|
{ |
|
|
|
mousePixelCoord.y = _ScreenParams.y - mousePixelCoord.y; |
|
|
|
// Note: We must not flip the mousePixelCoord.w coordinate |
|
|
|
} |
|
|
|
|
|
|
|
float4 mouseResult = SAMPLE_TEXTURE2D(_DebugColorPickerTexture, sampler_DebugColorPickerTexture, mousePixelCoord.zw); |
|
|
|
float4 finalResult = DisplayPixelInformationAtMousePosition(input, result, mouseResult); |
|
|
|
float4 finalResult = DisplayPixelInformationAtMousePosition(input, result, mouseResult, mousePixelCoord); |
|
|
|
return finalResult; |
|
|
|
} |
|
|
|
|
|
|
|