////////////////////////////////////////////////////////////////////////////////////////////////////// //// NoesisGUI - http://www.noesisengine.com //// Copyright (c) 2013 Noesis Technologies S.L. All Rights Reserved. ////////////////////////////////////////////////////////////////////////////////////////////////////// // // //#include "NineSliceMaskBrushShader.h" // //#include //#include //#include //#include //#include //#include //#include //#include // //#ifdef NS_PLATFORM_WINDOWS_DESKTOP //typedef unsigned char BYTE; //#include "NineSliceMask_Opacity.h" //#endif // //#include "GLSLHelpers.h" // // //using namespace Noesis; //using namespace NoesisApp; // // // // ////////////////////////////////////////////////////////////////////////////////////////////////////// //NineSliceMaskBrushShader::NineSliceMaskBrushShader() //{ // if (Shader == 0) // { // ShaderSource shader = { "Noesis_Monochrome_Opacity", Shader::Opacity_Pattern }; // shader.hlsl = NineSliceMask_Opacity; // // RenderContext* context = RenderContext::Current(); // Shader = context->CreatePixelShader(shader); // } // // mConstants.left = 0.0f; // mConstants.top = 0.0f; // mConstants.right = 0.0f; // mConstants.bottom = 0.0f; // mConstants.width = 0.0f; // mConstants.height = 0.0f; // SetConstantBuffer(&mConstants, sizeof(mConstants)); // // SetPixelShader(Shader, BrushShader::Target::Opacity); //} // ////////////////////////////////////////////////////////////////////////////////////////////////////// //NS_BEGIN_COLD_REGION // //NS_IMPLEMENT_REFLECTION(NineSliceMaskBrushShader, "NoesisGUIExtensions.NineSliceMaskBrushShader") //{ // auto OnThicknessChanged = [](DependencyObject* o, const DependencyPropertyChangedEventArgs& args) // { // NineSliceMaskBrushShader* this_ = (NineSliceMaskBrushShader*)o; // this_->mConstants.left = args.NewValue().left; // this_->mConstants.top = args.NewValue().top; // this_->mConstants.right = args.NewValue().right; // this_->mConstants.bottom = args.NewValue().bottom; // this_->InvalidateConstantBuffer(); // }; // // auto OnWidthChanged = [](DependencyObject* o, const DependencyPropertyChangedEventArgs& args) // { // NineSliceMaskBrushShader* this_ = (NineSliceMaskBrushShader*)o; // this_->mConstants.width = args.NewValue(); // this_->InvalidateConstantBuffer(); // }; // // auto OnHeightChanged = [](DependencyObject* o, const DependencyPropertyChangedEventArgs& args) // { // NineSliceMaskBrushShader* this_ = (NineSliceMaskBrushShader*)o; // this_->mConstants.height = args.NewValue(); // this_->InvalidateConstantBuffer(); // }; // // UIElementData* data = NsMeta(TypeOf()); // data->RegisterProperty(SlicesProperty, "Slices", // UIPropertyMetadata::Create(Thickness(), PropertyChangedCallback(OnThicknessChanged))); // data->RegisterProperty(WidthProperty, "Width", // UIPropertyMetadata::Create(0.0f, PropertyChangedCallback(OnWidthChanged))); // data->RegisterProperty(HeightProperty, "Height", // UIPropertyMetadata::Create(0.0f, PropertyChangedCallback(OnHeightChanged))); //} // //NS_END_COLD_REGION // ////////////////////////////////////////////////////////////////////////////////////////////////////// //const DependencyProperty* NineSliceMaskBrushShader::SlicesProperty; //const DependencyProperty* NineSliceMaskBrushShader::WidthProperty; //const DependencyProperty* NineSliceMaskBrushShader::HeightProperty; //void* NineSliceMaskBrushShader::Shader;