Overrides - Various color grading bugs fixed
This commit is contained in:
parent
761b9fca1c
commit
7a4595e8e8
4 changed files with 14 additions and 11 deletions
4
TODO
4
TODO
|
@ -30,7 +30,9 @@ Sync / inputs:
|
||||||
* Display selected input values
|
* Display selected input values
|
||||||
* Display selected overrides
|
* Display selected overrides
|
||||||
* Edit curves in UI
|
* Edit curves in UI
|
||||||
* Specific controls for color grading
|
|
||||||
|
|
||||||
Misc:
|
Misc:
|
||||||
* General overhaul (e.g. use tabs)
|
* General overhaul (e.g. use tabs)
|
||||||
|
* Color grading controls:
|
||||||
|
* White balance control in components tab
|
||||||
|
* Don't reset when hitting value or saturation 0
|
||||||
|
|
|
@ -35,9 +35,11 @@ bool ColorSelectorBar(
|
||||||
{
|
{
|
||||||
const float BarWidth = 24.f;
|
const float BarWidth = 24.f;
|
||||||
const float BarHeight = 180.f;
|
const float BarHeight = 180.f;
|
||||||
const float fullWidth = CalcItemWidth( );
|
|
||||||
const ImVec2 labelSize = CalcTextSize( label );
|
const ImVec2 labelSize = CalcTextSize( label );
|
||||||
const ImVec2 maxValueSize = CalcTextSize( "-9.99" );
|
const ImVec2 maxValueSize = CalcTextSize( "-9.99" );
|
||||||
|
const float fullWidth{
|
||||||
|
std::max( BarWidth , std::max( labelSize.x , maxValueSize.x ) )
|
||||||
|
+ 2 };
|
||||||
|
|
||||||
// Compute bounding boxes
|
// Compute bounding boxes
|
||||||
auto* const win( GetCurrentWindow( ) );
|
auto* const win( GetCurrentWindow( ) );
|
||||||
|
@ -103,8 +105,8 @@ bool ColorSelectorBar(
|
||||||
dl->AddRect( bbBar.Min , bbBar.Max , fCol );
|
dl->AddRect( bbBar.Min , bbBar.Max , fCol );
|
||||||
|
|
||||||
// Draw colored area on bar
|
// Draw colored area on bar
|
||||||
const float val( std::max( base , std::min( unit * 2 , nValue ) ) );
|
const float val( std::max( base , std::min( base + unit * 2 , nValue ) ) );
|
||||||
const float vy2( ( BarHeight - 2 ) * ( 1 - val / ( unit * 2 ) ) );
|
const float vy2( ( BarHeight - 2 ) * ( 1 - ( val - base ) / ( unit * 2 ) ) );
|
||||||
dl->AddRectFilled( bbBar.Min + ImVec2( 1 , BarHeight * .5 ) ,
|
dl->AddRectFilled( bbBar.Min + ImVec2( 1 , BarHeight * .5 ) ,
|
||||||
bbBar.Min + ImVec2( BarWidth - 1 , 1 + vy2 ) ,
|
bbBar.Min + ImVec2( BarWidth - 1 , 1 + vy2 ) ,
|
||||||
dispColor );
|
dispColor );
|
||||||
|
@ -160,7 +162,8 @@ bool HueSaturationPad(
|
||||||
const auto mPos{ ctx->IO.MousePos };
|
const auto mPos{ ctx->IO.MousePos };
|
||||||
const auto rmPos{ mPos - wCenter };
|
const auto rmPos{ mPos - wCenter };
|
||||||
const auto mcSqDist{ rmPos.x * rmPos.x + rmPos.y * rmPos.y };
|
const auto mcSqDist{ rmPos.x * rmPos.x + rmPos.y * rmPos.y };
|
||||||
const bool hovered{ mcSqDist <= wSize * wSize * .25f };
|
const bool hovered{ ItemHoverable( bb , id ) && (
|
||||||
|
mcSqDist <= wSize * wSize * .25f ) };
|
||||||
const bool tabFocus{ FocusableItemRegister( win , id ) };
|
const bool tabFocus{ FocusableItemRegister( win , id ) };
|
||||||
if ( tabFocus || ( hovered && ctx->IO.MouseClicked[ 0 ] ) ) {
|
if ( tabFocus || ( hovered && ctx->IO.MouseClicked[ 0 ] ) ) {
|
||||||
SetActiveID( id , win );
|
SetActiveID( id , win );
|
||||||
|
@ -290,9 +293,9 @@ bool ColorGradingControls(
|
||||||
ColorConvertRGBtoHSV( scRed , scGreen , scBlue , hue , saturation , value );
|
ColorConvertRGBtoHSV( scRed , scGreen , scBlue , hue , saturation , value );
|
||||||
|
|
||||||
PushMultiItemsWidths( 2 );
|
PushMultiItemsWidths( 2 );
|
||||||
changed = HueSaturationPad( "##wheel" , &hue , &saturation , 180.f );
|
changed = HueSaturationPad( "" , &hue , &saturation , 180.f );
|
||||||
PopItemWidth( );
|
PopItemWidth( );
|
||||||
SameLine( 0 , GetStyle( ).ItemInnerSpacing.x );
|
SameLine( 0 , 0 * GetStyle( ).ItemInnerSpacing.x );
|
||||||
ImVec4 updated{ 0 , 0 , 0 , 1 };
|
ImVec4 updated{ 0 , 0 , 0 , 1 };
|
||||||
ColorConvertHSVtoRGB( hue , saturation * .5f , 1 ,
|
ColorConvertHSVtoRGB( hue , saturation * .5f , 1 ,
|
||||||
updated.x , updated.y , updated.z );
|
updated.x , updated.y , updated.z );
|
||||||
|
|
4
demo.srd
4
demo.srd
|
@ -447,13 +447,13 @@
|
||||||
(section "Color grading"
|
(section "Color grading"
|
||||||
(color-grading "Lift"
|
(color-grading "Lift"
|
||||||
cg-lift-r cg-lift-g cg-lift-b
|
cg-lift-r cg-lift-g cg-lift-b
|
||||||
(base -1) (unit 1))
|
(base -.1) (unit .1))
|
||||||
(color-grading "Gain"
|
(color-grading "Gain"
|
||||||
cg-gain-r cg-gain-g cg-gain-b
|
cg-gain-r cg-gain-g cg-gain-b
|
||||||
(base 0) (unit 1))
|
(base 0) (unit 1))
|
||||||
(color-grading "Gamma"
|
(color-grading "Gamma"
|
||||||
cg-gamma-r cg-gamma-g cg-gamma-b
|
cg-gamma-r cg-gamma-g cg-gamma-b
|
||||||
(base -.9) (unit 1.8))
|
(base -.9) (unit .9))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
# FIXME: overrides for vignette
|
# FIXME: overrides for vignette
|
||||||
|
|
2
main.cc
2
main.cc
|
@ -10,8 +10,6 @@
|
||||||
#include "rendertarget.hh"
|
#include "rendertarget.hh"
|
||||||
#include "sync.hh"
|
#include "sync.hh"
|
||||||
|
|
||||||
#include "colorgrading.hh"
|
|
||||||
|
|
||||||
using ebcl::T_Optional;
|
using ebcl::T_Optional;
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue