Merge branch 'main' into dev-sys

dev-VirtualTexture
ArgonarioD 2023-02-07 16:05:33 +08:00
commit 169aa9501c
43 changed files with 2084 additions and 799 deletions

View File

@ -5,9 +5,9 @@ VisualStudioVersion = 17.2.32519.379
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ArchitectureColoredPainting", "ArchitectureColoredPainting\ArchitectureColoredPainting.vcxproj", "{3FE96A33-2BB7-4686-A710-3EB8E3BBD709}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FramelessHelperCore", "FramelessHelper\qmake\FramelessHelperCore.vcxproj", "{F1BC586E-F1ED-320C-899E-76CCB5660AE1}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FramelessHelperCore", "FramelessHelper\qmake\FramelessHelperCore\FramelessHelperCore.vcxproj", "{954D3D24-DF86-33A3-8867-D1735CCBDB10}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FramelessHelperWidgets", "FramelessHelper\qmake\FramelessHelperWidgets.vcxproj", "{61651EC8-A30E-3935-BD0C-A01AE3EE0AD9}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FramelessHelperWidgets", "FramelessHelper\qmake\FramelessHelperWidgets\FramelessHelperWidgets.vcxproj", "{E7A71E05-4AA5-31DB-A17D-542FC7BD83A3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -19,14 +19,14 @@ Global
{3FE96A33-2BB7-4686-A710-3EB8E3BBD709}.Debug|x64.Build.0 = Debug|x64
{3FE96A33-2BB7-4686-A710-3EB8E3BBD709}.Release|x64.ActiveCfg = Release|x64
{3FE96A33-2BB7-4686-A710-3EB8E3BBD709}.Release|x64.Build.0 = Release|x64
{F1BC586E-F1ED-320C-899E-76CCB5660AE1}.Debug|x64.ActiveCfg = Debug|x64
{F1BC586E-F1ED-320C-899E-76CCB5660AE1}.Debug|x64.Build.0 = Debug|x64
{F1BC586E-F1ED-320C-899E-76CCB5660AE1}.Release|x64.ActiveCfg = Release|x64
{F1BC586E-F1ED-320C-899E-76CCB5660AE1}.Release|x64.Build.0 = Release|x64
{61651EC8-A30E-3935-BD0C-A01AE3EE0AD9}.Debug|x64.ActiveCfg = Debug|x64
{61651EC8-A30E-3935-BD0C-A01AE3EE0AD9}.Debug|x64.Build.0 = Debug|x64
{61651EC8-A30E-3935-BD0C-A01AE3EE0AD9}.Release|x64.ActiveCfg = Release|x64
{61651EC8-A30E-3935-BD0C-A01AE3EE0AD9}.Release|x64.Build.0 = Release|x64
{954D3D24-DF86-33A3-8867-D1735CCBDB10}.Debug|x64.ActiveCfg = Debug|x64
{954D3D24-DF86-33A3-8867-D1735CCBDB10}.Debug|x64.Build.0 = Debug|x64
{954D3D24-DF86-33A3-8867-D1735CCBDB10}.Release|x64.ActiveCfg = Release|x64
{954D3D24-DF86-33A3-8867-D1735CCBDB10}.Release|x64.Build.0 = Release|x64
{E7A71E05-4AA5-31DB-A17D-542FC7BD83A3}.Debug|x64.ActiveCfg = Debug|x64
{E7A71E05-4AA5-31DB-A17D-542FC7BD83A3}.Debug|x64.Build.0 = Debug|x64
{E7A71E05-4AA5-31DB-A17D-542FC7BD83A3}.Release|x64.ActiveCfg = Release|x64
{E7A71E05-4AA5-31DB-A17D-542FC7BD83A3}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -108,12 +108,15 @@
<ClCompile Include="src\Editor\PreviewWindow.cpp" />
<ClCompile Include="src\Editor\RightBar\InfoDisplayWidget.cpp" />
<ClCompile Include="src\Editor\RightBar\LayerTreeWidget.cpp" />
<ClCompile Include="src\Editor\third-party modules\qquick\qquicksvgparser.cpp" />
<ClCompile Include="src\Editor\third-party modules\util\SvgFileLoader.cpp" />
<ClCompile Include="src\Editor\ThirdPartyLib\qquick\qquicksvgparser.cpp" />
<ClCompile Include="src\Editor\ThirdPartyLib\SvgHelper.cpp" />
<ClCompile Include="src\Editor\util\PainterPathUtil.cpp" />
<ClCompile Include="src\Editor\util\SvgFileLoader.cpp" />
<ClCompile Include="src\IconWidget.cpp" />
<ClCompile Include="src\main.cpp" />
<ClCompile Include="src\MainWindow.cpp" />
<ClCompile Include="src\NavigationBarWidget.cpp" />
<ClCompile Include="src\Renderer\Painting\BaseStyle.cpp" />
<ClCompile Include="src\Renderer\Painting\BvhTree.cpp" />
<ClCompile Include="src\Renderer\Camera.cpp" />
<ClCompile Include="src\Renderer\Painting\CubicBezier.cpp" />
@ -122,20 +125,22 @@
<ClCompile Include="src\Renderer\Light.cpp" />
<ClCompile Include="src\Renderer\Painting\Element.cpp" />
<ClCompile Include="src\Renderer\Painting\ElementStyle.cpp" />
<ClCompile Include="src\Renderer\Painting\MaterialStyleFill.cpp" />
<ClCompile Include="src\Renderer\Painting\Line.cpp" />
<ClCompile Include="src\Renderer\Mesh.cpp" />
<ClCompile Include="src\Renderer\Model.cpp" />
<ClCompile Include="src\Renderer\Painting\LineTree.cpp" />
<ClCompile Include="src\Renderer\Painting\MaterialStyleStroke.cpp" />
<ClCompile Include="src\Renderer\Painting\Painting.cpp" />
<ClCompile Include="src\Renderer\Painting\PaintingHelper.cpp" />
<ClCompile Include="src\Renderer\PaintingMesh.cpp" />
<ClCompile Include="src\Renderer\Preview\ElementRenderer.cpp" />
<ClCompile Include="src\Renderer\RendererGLWidget.cpp" />
<ClCompile Include="src\Renderer\RendererWidget.cpp" />
<ClCompile Include="src\Renderer\Painting\ShortCutTree.cpp" />
<ClCompile Include="src\Renderer\Painting\StraightLine.cpp" />
<ClCompile Include="src\SvgParser.cpp" />
<ClCompile Include="src\TitleWidget.cpp" />
<ClCompile Include="src\Editor\third-party modules\SvgHelper.cpp" />
<QtRcc Include="MainWindow.qrc" />
<QtUic Include="EditorWidget.ui" />
<QtUic Include="FramelessWindow.ui" />
@ -149,6 +154,7 @@
<None Include="lightstyle.qss" />
<None Include="Shaders\depth_init.comp" />
<None Include="Shaders\depth_mipmap.comp" />
<None Include="Shaders\element.comp" />
<None Include="Shaders\final.frag" />
<None Include="Shaders\final.vert" />
<None Include="Shaders\model.frag" />
@ -156,7 +162,9 @@
<None Include="Shaders\model_shadow.frag" />
<None Include="Shaders\model_shadow.geom" />
<None Include="Shaders\model_shadow.vert" />
<None Include="Shaders\painting.comp" />
<None Include="Shaders\painting.comp">
<FileType>Document</FileType>
</None>
<None Include="Shaders\painting.frag" />
<None Include="Shaders\painting.vert" />
<None Include="Shaders\shader.frag" />
@ -167,23 +175,26 @@
<ItemGroup>
<QtMoc Include="src\Editor\RightBar\LayerTreeWidget.h" />
<QtMoc Include="src\Editor\RightBar\InfoDisplayWidget.h" />
<ClInclude Include="src\Editor\third-party modules\qquick\qtquickglobal.h" />
<ClInclude Include="src\Editor\third-party modules\qquick\qtquickglobal_p.h" />
<ClInclude Include="src\Editor\third-party modules\qquick\qquicksvgparser_p.h" />
<ClInclude Include="src\Editor\third-party modules\SvgHelper.h" />
<QtMoc Include="src\MainWindow.h" />
<ClInclude Include="src\Editor\ElementManager.h" />
<ClInclude Include="src\Editor\GraphicElement.h" />
<ClInclude Include="src\Editor\LayerManager.h" />
<ClInclude Include="src\Editor\LayerStyle.h" />
<ClInclude Include="src\Editor\LayerWrapper.h" />
<QtMoc Include="src\Editor\PreviewWindow.h" />
<ClInclude Include="src\Editor\third-party modules\util\SvgFileLoader.h" />
<ClInclude Include="src\Editor\ThirdPartyLib\qquick\qquicksvgparser_p.h" />
<ClInclude Include="src\Editor\ThirdPartyLib\qquick\qtquickglobal.h" />
<ClInclude Include="src\Editor\ThirdPartyLib\qquick\qtquickglobal_p.h" />
<ClInclude Include="src\Editor\ThirdPartyLib\SvgHelper.h" />
<ClInclude Include="src\Editor\util\PainterPathUtil.h" />
<ClInclude Include="src\Editor\util\SvgFileLoader.h" />
<ClInclude Include="src\Renderer\Painting\CubicBezierSignedDistance.h" />
<ClInclude Include="src\Renderer\Painting\Element.h" />
<ClInclude Include="src\Renderer\Painting\ElementStyle.h" />
<ClInclude Include="src\Renderer\Painting\MaterialStyleFill.h" />
<ClInclude Include="src\Renderer\Painting\LineTree.h" />
<ClInclude Include="src\Renderer\Painting\MaterialStyleStroke.h" />
<ClInclude Include="src\Renderer\Painting\Painting.h" />
<ClInclude Include="src\Renderer\Preview\ElementRenderer.h" />
<ClInclude Include="src\SvgParser.h" />
<QtMoc Include="src\TitleWidget.h" />
<QtMoc Include="src\IconWidget.h" />
@ -207,8 +218,8 @@
<QtMoc Include="src\Renderer\RendererGLWidget.h" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\FramelessHelper\qmake\FramelessHelperWidgets.vcxproj">
<Project>{61651ec8-a30e-3935-bd0c-a01ae3ee0ad9}</Project>
<ProjectReference Include="..\FramelessHelper\qmake\FramelessHelperWidgets\FramelessHelperWidgets.vcxproj">
<Project>{e7a71e05-4aa5-31db-a17d-542fc7bd83a3}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

View File

@ -41,23 +41,29 @@
<Filter Include="Header Files\Renderer\Painting">
<UniqueIdentifier>{22909273-2b23-49fa-84ab-444cefb09656}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\Editor\ThirdPartyLib">
<UniqueIdentifier>{11f273e9-b41f-4982-b4ca-12851a03aaae}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\Editor\util">
<UniqueIdentifier>{e3c323ec-d150-4876-8618-5800c87a4941}</UniqueIdentifier>
<UniqueIdentifier>{727fd876-d2b0-4928-80a7-2da7cafe1519}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\Editor\third-party modules">
<UniqueIdentifier>{30b46cf2-d980-47be-94c4-d2ec1dcc54ed}</UniqueIdentifier>
<Filter Include="Header Files\Editor\ThirdPartyLib\qquick">
<UniqueIdentifier>{169687a8-6807-4571-802c-c4a95858db3a}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\Editor\third-party modules\qquick">
<UniqueIdentifier>{5028c879-8b07-4033-81ac-e538a873a837}</UniqueIdentifier>
<Filter Include="Source Files\Editor\ThirdPartyLib">
<UniqueIdentifier>{0567e730-5508-4380-8304-86ded8ea3b2f}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Editor\third-party modules">
<UniqueIdentifier>{555d169f-4fa2-4501-b67c-695197b9e6ae}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Editor\third-party modules\qquick">
<UniqueIdentifier>{0b29331b-03b9-44fe-916f-28f5061b4147}</UniqueIdentifier>
<Filter Include="Source Files\Editor\ThirdPartyLib\qquick">
<UniqueIdentifier>{cfa316d0-97e0-49b0-9911-baebfea49236}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Editor\util">
<UniqueIdentifier>{d7c7ab61-0d05-4e67-9e89-852f3e56fa2f}</UniqueIdentifier>
<UniqueIdentifier>{96f98afe-4250-44cb-a505-682a1d5932c3}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Renderer\Preview">
<UniqueIdentifier>{2a8e109f-7791-46ad-8c86-fe22a651cbe7}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\Renderer\Preview">
<UniqueIdentifier>{7ead1a66-586a-4584-ae80-9e7a4e667364}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
@ -165,16 +171,6 @@
<ClCompile Include="src\Renderer\Painting\CubicBezierSignedDistance.cpp">
<Filter>Source Files\Renderer\Painting</Filter>
</ClCompile>
<ClCompile Include="src\Editor\third-party modules\qquick\qquicksvgparser.cpp">
<Filter>Source Files\Editor\third-party modules\qquick</Filter>
</ClCompile>
<ClCompile Include="src\Editor\third-party modules\util\SvgFileLoader.cpp">
<Filter>Source Files\Editor\util</Filter>
</ClCompile>
<ClCompile Include="src\Editor\third-party modules\SvgHelper.cpp">
<Filter>Source Files\Editor\third-party modules</Filter>
<Filter>Source Files\Editor\third-party modules</Filter>
</ClCompile>
<ClCompile Include="src\Editor\RightBar\LayerTreeWidget.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@ -184,6 +180,30 @@
<ClCompile Include="src\Renderer\Painting\ElementStyle.cpp">
<Filter>Source Files\Renderer\Painting</Filter>
</ClCompile>
<ClCompile Include="src\Renderer\Painting\MaterialStyleFill.cpp">
<Filter>Source Files\Renderer\Painting</Filter>
</ClCompile>
<ClCompile Include="src\Renderer\Painting\BaseStyle.cpp">
<Filter>Source Files\Renderer\Painting</Filter>
</ClCompile>
<ClCompile Include="src\Renderer\Painting\MaterialStyleStroke.cpp">
<Filter>Source Files\Renderer\Painting</Filter>
</ClCompile>
<ClCompile Include="src\Editor\ThirdPartyLib\qquick\qquicksvgparser.cpp">
<Filter>Source Files\Editor\ThirdPartyLib\qquick</Filter>
</ClCompile>
<ClCompile Include="src\Editor\ThirdPartyLib\SvgHelper.cpp">
<Filter>Source Files\Editor\ThirdPartyLib</Filter>
</ClCompile>
<ClCompile Include="src\Editor\util\SvgFileLoader.cpp">
<Filter>Source Files\Editor\util</Filter>
</ClCompile>
<ClCompile Include="src\Editor\util\PainterPathUtil.cpp">
<Filter>Source Files\Editor\util</Filter>
</ClCompile>
<ClCompile Include="src\Renderer\Preview\ElementRenderer.cpp">
<Filter>Source Files\Renderer\Preview</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<QtMoc Include="src\Renderer\RendererGLWidget.h">
@ -276,6 +296,9 @@
<Filter>Resource Files</Filter>
</None>
<None Include="..\data.json" />
<None Include="Shaders\element.comp">
<Filter>Resource Files\Shaders</Filter>
</None>
</ItemGroup>
<ItemGroup>
<QtUic Include="EditorWidget.ui">
@ -352,31 +375,39 @@
<ClInclude Include="src\Renderer\Painting\CubicBezierSignedDistance.h">
<Filter>Header Files\Renderer\Painting</Filter>
</ClInclude>
<ClInclude Include="src\Editor\third-party modules\SvgHelper.h">
<Filter>Header Files\Editor\third-party modules</Filter>
<ClInclude Include="src\Renderer\Painting\ElementStyle.h">
<Filter>Header Files\Renderer\Painting</Filter>
</ClInclude>
<ClInclude Include="src\Editor\third-party modules\qquick\qquicksvgparser_p.h">
<Filter>Header Files\Editor\third-party modules\qquick</Filter>
<ClInclude Include="src\Editor\ThirdPartyLib\qquick\qquicksvgparser_p.h">
<Filter>Header Files\Editor\ThirdPartyLib\qquick</Filter>
</ClInclude>
<ClInclude Include="src\Editor\third-party modules\qquick\qtquickglobal.h">
<Filter>Header Files\Editor\third-party modules\qquick</Filter>
<ClInclude Include="src\Editor\ThirdPartyLib\qquick\qtquickglobal.h">
<Filter>Header Files\Editor\ThirdPartyLib\qquick</Filter>
</ClInclude>
<ClInclude Include="src\Editor\third-party modules\qquick\qtquickglobal_p.h">
<Filter>Header Files\Editor\third-party modules\qquick</Filter>
<ClInclude Include="src\Editor\ThirdPartyLib\qquick\qtquickglobal_p.h">
<Filter>Header Files\Editor\ThirdPartyLib\qquick</Filter>
</ClInclude>
<ClInclude Include="src\Editor\third-party modules\util\SvgFileLoader.h">
<Filter>Header Files\Editor\util</Filter>
<ClInclude Include="src\Editor\ThirdPartyLib\SvgHelper.h">
<Filter>Header Files\Editor\ThirdPartyLib</Filter>
</ClInclude>
<ClInclude Include="src\Editor\LayerWrapper.h">
<Filter>Header Files\Editor</Filter>
<Filter>Header Files\Editor\third-party modules\qquick</Filter>
</ClInclude>
<ClInclude Include="src\Editor\third-party modules\util\SvgFileLoader.h">
<ClInclude Include="src\Editor\util\SvgFileLoader.h">
<Filter>Header Files\Editor\util</Filter>
</ClInclude>
<ClInclude Include="src\Renderer\Painting\ElementStyle.h">
<Filter>Header Files\Renderer\Painting</Filter>
</ClInclude>
<ClInclude Include="src\Renderer\Painting\MaterialStyleFill.h">
<Filter>Header Files\Renderer\Painting</Filter>
</ClInclude>
<ClInclude Include="src\Renderer\Painting\MaterialStyleStroke.h">
<Filter>Header Files\Renderer\Painting</Filter>
</ClInclude>
<ClInclude Include="src\Editor\util\PainterPathUtil.h">
<Filter>Header Files\Editor\util</Filter>
</ClInclude>
<ClInclude Include="src\Renderer\Preview\ElementRenderer.h">
<Filter>Header Files\Renderer\Preview</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<QtRcc Include="MainWindow.qrc">

View File

@ -23,6 +23,7 @@
<file>images/icon_window_restore.png</file>
<file>darkstyle.qss</file>
<file>lightstyle.qss</file>
<file>Shaders/element.comp</file>
</qresource>
<qresource prefix="/qt/etc">
<file>qt.conf</file>

File diff suppressed because it is too large Load Diff

View File

@ -898,12 +898,13 @@ void drawLine(in float d, in uint styleIndex, out vec4 elementColor, out vec2 me
{
elementColor = vec4(1);
metallicRoughness = vec2(0.8);
switch(int(elementData[styleIndex+3]))
//switch(int(elementData[styleIndex+3]))
switch(0)
{
case 0:
{
elementColor = vec4(elementData[styleIndex+7],elementData[styleIndex+8],elementData[styleIndex+9],1);
metallicRoughness = vec2(elementData[styleIndex+10],elementData[styleIndex+11]);
elementColor = vec4(unpackUnorm4x8(floatBitsToUint(elementData[styleIndex+2])).rgb,1);
metallicRoughness = vec2(unpackUnorm4x8(floatBitsToUint(elementData[styleIndex+1])).rg);
break;
}
case 1:
@ -972,9 +973,10 @@ bool drawElement(uint elementIndex, vec2 localUV, out vec3 color, out vec2 metal
}
//uint styleIndex = bvhChildren[elementBvhRoot + elementBvhIndex].y;
//uint elementType = bvhChildren[elementBvhRoot + elementBvhIndex].y;
float elementType = elementData[styleIndex];
//float elementType = elementData[styleIndex];
bool isFillStyle = elementData[styleIndex]<=0;
// for(int i = 0; i<200;i++)
if (elementType == 0) //Ăć
if (isFillStyle) //Ăć
{
uint contourIndex = linesOffset + leftChild - 0x80000000;
@ -1015,22 +1017,25 @@ bool drawElement(uint elementIndex, vec2 localUV, out vec3 color, out vec2 metal
{
hitElement = true;
elementColor = vec4(1,1,0,0);
if(elementData[styleIndex+1]==0)
vec4 head = unpackUnorm4x8(floatBitsToUint(elementData[styleIndex]));
if(head.z==0)
{
elementColor = vec4(elementData[styleIndex+2],elementData[styleIndex+3],elementData[styleIndex+4],0);
metallicRoughness = vec2(elementData[styleIndex+5],elementData[styleIndex+6]);
elementColor = vec4(unpackUnorm4x8(floatBitsToUint(elementData[styleIndex+1])).rgb,0);
metallicRoughness = head.xy;
}
}
}
else if (elementType == 1) //Ďß
else //Ďß
{
float strokeWidth = elementData[styleIndex+1];
float strokeWidth = elementData[styleIndex];
uint contourIndex = linesOffset + leftChild - 0x80000000;
float minDistance = 1e38;
uint lineCount = elementIndexs[contourIndex];
float lineType = elementData[styleIndex+4];
//float lineType = elementData[styleIndex+4];
float lineType = 2;
vec2 p3Last = vec2(1e38);
vec2 p2Last = vec2(1e38);
int debugBegin = 0;
@ -1169,9 +1174,9 @@ void main()
uint leftChild = bvhChildren[index].x;
if (leftChild >= bvhLength)
{
uint zIndex = bvhChildren[index].y / 65535;
uint zIndex = bvhChildren[index].y >> 18;
bvec2 flip = bvec2(bvhChildren[index].y & (1<<16), bvhChildren[index].y & (1<<17));
float angle = (float(bvhChildren[index].y) / 65535.0 - zIndex) * 2 * PI;
mat2 rotation = {{cos(angle), -sin(angle)}, {sin(angle), cos(angle)}};
vec2 localUV = uv - (bound.xy + bound.zw) / 2;
localUV = rotation * localUV;
@ -1184,6 +1189,8 @@ void main()
//debugBVH.bg += 0.5 * (localUV + vec2(1));
//debugBVH = vec3(0);
if(flip.x) localUV.x = -localUV.x;
if(flip.y) localUV.y = -localUV.y;
vec3 elementColor;
vec2 elementMetallicRoughness;
if(drawElement(leftChild - 0x80000000, localUV, elementColor, elementMetallicRoughness, debugBVH))

View File

@ -1,5 +1,5 @@
#include "GraphicElement.h"
#include "third-party modules/util/SvgFileLoader.h"
#include "util/SvgFileLoader.h"
using namespace std;
QPainterPath SimpleElement::getPaintObject() const
{

View File

@ -0,0 +1,41 @@
#include "PainterPathUtil.h"
#include <QDebug>
using Renderer::Point;
using std::vector;
vector<vector<Point> > PainterPathUtil::transformToLines(QPainterPath& painterPath) {
vector<Point> line; line.clear();
vector<vector<Point> > lines; lines.clear();
QPointF startPoint(0, 0);
Point point(0, 0);
for (int elementIndex = 0; elementIndex < painterPath.elementCount(); elementIndex++) {
auto element = painterPath.elementAt(elementIndex);
point = element;
qDebug() << element;
if (element.isMoveTo()) {
if (line.size() >= 2) {
lines.push_back(line);
}
line.clear();
line.push_back(point);
}
else {
line.push_back(point);
if (element.isLineTo()) {
lines.push_back(line);
}
if (element.isCurveTo()) {
point = painterPath.elementAt(++elementIndex);
line.push_back(point);
point = painterPath.elementAt(++elementIndex);
line.push_back(point);
lines.push_back(line);
}
line.clear();
line.push_back(point);
}
}
line.clear();
return lines;
}

View File

@ -0,0 +1,13 @@
#pragma once
#include <vector>
#include <QPainterPath>
#include "../Renderer/Painting/Line.h"
using Renderer::Point;
class PainterPathUtil
{
public:
static std::vector<std::vector<Point> > transformToLines(QPainterPath& painterPath);
};

View File

@ -1,6 +1,6 @@
#include "SvgFileLoader.h"
#include <QFile>
#include "../qquick/qquicksvgparser_p.h"
#include "../ThirdPartyLib/qquick/qquicksvgparser_p.h"
#include <QPolygonF>
@ -151,6 +151,7 @@ void SvgFileLoader::handleLabelCircle(QPainterPath& painterPath) {
}
}
qDebug() << labelStyle;
//addEllipse(cx, cy, r, r, painterPath);
painterPath.addEllipse(cx, cy, r, r);
}
@ -174,6 +175,7 @@ void SvgFileLoader::handleLabelEllipse(QPainterPath& painterPath) {
}
}
qDebug() << labelStyle;
//addEllipse(cx, cy, rx, ry, painterPath);
painterPath.addEllipse(cx, cy, rx, ry);
}
@ -199,8 +201,9 @@ void SvgFileLoader::handleLabelPolygon(QPainterPath & painterPath) {
for (auto& attr : xmlReader->attributes()) {
if (attr.name().toString() == QLatin1String("points")) {
QPolygonF points = transformPoints(attr.value().toLatin1());
points.push_back(*points.begin());
//points.push_back(*points.begin());
painterPath.addPolygon(points);
painterPath.closeSubpath();
}
else if (attr.name().toString() == QLatin1String("style")) {
labelStyle = transformStyle(attr.value().toLatin1());
@ -211,3 +214,11 @@ void SvgFileLoader::handleLabelPolygon(QPainterPath & painterPath) {
}
qDebug() << labelStyle;
}
void SvgFileLoader::addEllipse(double x, double y, double w, double h, QPainterPath& painterPath) {
double k = w / 0.75;
painterPath.moveTo(x, y - h);
painterPath.cubicTo(QPointF(x + k, y - h), QPointF(x + k, y + h), QPointF(x, y + h));
painterPath.cubicTo(QPointF(x - k, y + h), QPointF(x - k, y - h), QPointF(x, y - h));
painterPath.closeSubpath();
}

View File

@ -15,6 +15,7 @@ private:
std::shared_ptr<QXmlStreamReader> xmlReader;
QPolygonF transformPoints(QString points);
QMap<QString, QString> transformStyle(QString style);
void addEllipse(double cx, double cy, double h, double w, QPainterPath& painterPath);
void handleLabelG(QPainterPath& painterPath);
void handleLabelPath(QPainterPath& painterPath);
void handleLabelRect(QPainterPath& painterPath);
@ -22,4 +23,5 @@ private:
void handleLabelEllipse(QPainterPath& painterPath);
void handleLabelPolyline(QPainterPath& painterPath);
void handleLabelPolygon(QPainterPath& painterPath);
};

View File

@ -350,50 +350,54 @@ GLuint Renderer::Model::loadPainting(std::string path)
std::make_shared<Contour>(SvgParser("M377,459.61a11.26,11.26,0,0,1,11.27-11.27H696.12a11.27,11.27,0,0,0,11-8.62A359.84,359.84,0,0,0,708,280.56a11.26,11.26,0,0,0-11-8.73H388.27A11.26,11.26,0,0,1,377,260.57h0a11.26,11.26,0,0,1,11.27-11.26H683.71A11.32,11.32,0,0,0,694.28,234C649.8,113.69,542.57,23.85,412.3,4.12a11.22,11.22,0,0,0-12.76,11.17v158.9a11.26,11.26,0,0,0,11.26,11.27H583.12a11.32,11.32,0,0,0,9.26-17.75c-31.67-46.59-78.51-75.2-109.11-90.07a11.25,11.25,0,0,0-16.13,10.17V115.2a11.24,11.24,0,0,0,6.22,10.07l7.51,3.76a11.28,11.28,0,0,1,5,15.12h0a11.27,11.27,0,0,1-15.11,5l-20-10a11.27,11.27,0,0,1-6.22-10.07V54a11.27,11.27,0,0,1,14.62-10.75c5.11,1.59,125.66,40.35,172.24,149A11.27,11.27,0,0,1,621.11,208H388.27A11.26,11.26,0,0,1,377,196.73V11.36A11.32,11.32,0,0,0,365.89.08C363.34,0,360.79,0,358.22,0s-5.11,0-7.66.08a11.32,11.32,0,0,0-11.11,11.28V196.74A11.26,11.26,0,0,1,328.18,208H95.35A11.27,11.27,0,0,1,85,192.3c46.57-108.67,167.12-147.42,172.23-149A11.26,11.26,0,0,1,271.86,54v75.11a11.25,11.25,0,0,1-6.23,10.07l-20,10a11.27,11.27,0,0,1-15.11-5h0a11.26,11.26,0,0,1,5-15.11l7.52-3.76a11.27,11.27,0,0,0,6.22-10.07V87.82a11.25,11.25,0,0,0-16.14-10.16c-30.6,14.87-77.45,43.48-109.1,90.07a11.3,11.3,0,0,0,9.25,17.74H305.66a11.26,11.26,0,0,0,11.27-11.26V15.31A11.22,11.22,0,0,0,304.17,4.14C173.88,23.86,66.66,113.71,22.17,234a11.32,11.32,0,0,0,10.56,15.29H328.18a11.26,11.26,0,0,1,11.27,11.26v0a11.26,11.26,0,0,1-11.27,11.26H19.52a11.26,11.26,0,0,0-11,8.72,359.84,359.84,0,0,0,.83,159.16,11.26,11.26,0,0,0,11,8.61H328.18a11.26,11.26,0,0,1,11.27,11.27h0a11.26,11.26,0,0,1-11.27,11.26h-294a11.32,11.32,0,0,0-10.53,15.4C69,604.65,175.3,692.78,304.16,712.3a11.21,11.21,0,0,0,12.76-11.16V542.22A11.26,11.26,0,0,0,305.66,531h-166c-9.53,0-14.89,11.22-8.69,18.47,34.09,39.77,74.45,65.66,101.77,80.18a11.25,11.25,0,0,0,16.53-10V591a11.26,11.26,0,0,1,11.26-11.26h0A11.26,11.26,0,0,1,271.85,591v63.85A11.27,11.27,0,0,1,256.8,665.5c-4.45-1.59-109.58-40-171-139.9a11.27,11.27,0,0,1,9.59-17.17H328.18a11.26,11.26,0,0,1,11.27,11.26V705.08a11.32,11.32,0,0,0,11.11,11.28q3.82.07,7.66.08c2.57,0,5.12,0,7.67-.08A11.32,11.32,0,0,0,377,705.08V519.69a11.25,11.25,0,0,1,11.27-11.26H621.1a11.26,11.26,0,0,1,9.59,17.16c-61.46,99.87-166.59,138.3-171,139.9a11.27,11.27,0,0,1-15-10.61V591a11.26,11.26,0,0,1,11.26-11.26h0A11.26,11.26,0,0,1,467.14,591v28.6a11.25,11.25,0,0,0,16.53,10c27.33-14.53,67.68-40.42,101.77-80.19,6.2-7.23.85-18.46-8.69-18.46h-166a11.26,11.26,0,0,0-11.26,11.26V701.12a11.21,11.21,0,0,0,12.76,11.17c128.86-19.51,235.14-107.66,280.48-226a11.33,11.33,0,0,0-10.53-15.41h-294A11.25,11.25,0,0,1,377,459.61ZM35.27,399.53V316.9a11.26,11.26,0,0,1,11.27-11.26H669.92a11.25,11.25,0,0,1,11.26,11.26v82.63a11.25,11.25,0,0,1-11.26,11.26H46.54a11.27,11.27,0,0,1-11.27-11.26Z", 716.45, 716.44).parse())
};
//vector<std::shared_ptr<ElementStyle>> style = {
// std::make_shared<ElementStyle>(std::vector<GLfloat>{
// //strokeStyle
// //stroke
// 1,
// //strokeWidth
// 0.02,
// //strokeEndType
// 0, //途실
// //strokeFillType
// 0, //데<>
// //窟잚謹
// 0, //崗꿋
// //窟棍췄긋욱똑
// 0,
// //窟棍췄긋렘駕
// 0, //데<>
// //strokeFillColorMetallicRoughness
// 1,0,1, 0,0.8,
// }),
// std::make_shared<ElementStyle>(std::vector<GLfloat>{
// //fillStyle
// //fill
// 0,
// //fillType
// 0, //데<>
// //fillColorMetallicRoughness
// 240 / 255., 220 / 255., 160 / 255., 0.996, 0.18,
// }),
// std::make_shared<ElementStyle>(std::vector<GLfloat>{
// //fillStyle
// //fill
// 0,
// //fillType
// 0, //데<>
// //fillColorMetallicRoughness
// 24 / 255., 220 / 255., 16 / 255., 0., 0.18,
// }),
//};
vector<std::shared_ptr<ElementStyle>> style = {
std::make_shared<ElementStyle>(std::vector<GLfloat>{
//strokeStyle
//stroke
1,
//strokeWidth
0.02,
//strokeEndType
0, //途실
//strokeFillType
0, //데<>
//窟잚謹
0, //崗꿋
//窟棍췄긋욱똑
0,
//窟棍췄긋렘駕
0, //데<>
//strokeFillColorMetallicRoughness
1,0,1, 0,0.8,
}),
std::make_shared<ElementStyle>(std::vector<GLfloat>{
//fillStyle
//fill
0,
//fillType
0, //데<>
//fillColorMetallicRoughness
240 / 255., 220 / 255., 160 / 255., 0.996, 0.18,
}),
std::make_shared<ElementStyle>(std::vector<GLfloat>{
//fillStyle
//fill
0,
//fillType
0, //데<>
//fillColorMetallicRoughness
24 / 255., 220 / 255., 16 / 255., 0., 0.18,
}),
std::make_shared<ElementStyleFillDemo>(),
std::make_shared<ElementStyleStrokeDemo>()
};
vector<std::shared_ptr<Element>> element = {
std::make_shared<Element>(Element{ contour[0], style[1]}),
std::make_shared<Element>(Element{ contour[1], style[0]}),
std::make_shared<Element>(Element{ contour[0], style[0]}),
std::make_shared<Element>(Element{ contour[1], style[1]}),
std::make_shared<Element>(Element{ contour[2], style[0]}),
};
Painting painting;
@ -406,9 +410,14 @@ GLuint Renderer::Model::loadPainting(std::string path)
// //rootBvhTreeData.push_back(BvhTreeData(QVector4D(x, y, z, w), 0, encodeZIndexAngle(1, (float)rand() / RAND_MAX * 360)));
// painting.addElement(element[i%3], QVector4D(x, y, z, w), (float)rand() / RAND_MAX * 360, 1);
//}
painting.addElement(element[0], QVector4D(-0.8, -0.8, -0.2, -0.1), 0, 0);
painting.addElement(element[1], QVector4D(-0.7, 0.2, -0.2, 0.7), 0, 0);
painting.addElement(element[2], QVector4D(0.2, -0.8, 0.8, -0.1), 0, 0);
painting.addElement(*element[0], ElementTransform{ glm::vec2(-0.5,-0.45), glm::vec2(0.6,0.7), 0, glm::bvec2(true, false), 0 });
painting.addElement(*element[1], ElementTransform{ glm::vec2(-0.45,0.45), glm::vec2(0.5,0.5), 0, glm::bvec2(false), 0 });
painting.addElement(*element[2], ElementTransform{ glm::vec2(0.5,-0.45), glm::vec2(0.6,0.7), 0, glm::bvec2(false), 0 });
//painting.addElement(element[0], QVector4D(-0.8, -0.8, -0.2, -0.1), 0, 0);
//painting.addElement(element[1], QVector4D(-0.7, 0.2, -0.2, 0.7), 0, 0);
//painting.addElement(element[2], QVector4D(0.2, -0.8, 0.8, -0.1), 0, 0);
painting.generateBuffers();
/////////////////////////////////////////////////////////////////////////////////////////////////

View File

@ -0,0 +1,3 @@
#include "BaseStyle.h"
using namespace Renderer;

View File

@ -0,0 +1,33 @@
#pragma once
#include <QOpenGLFunctions_4_5_Compatibility>
#include <vector>
#include <QColor>
#include <glm/glm.hpp>
namespace Renderer
{
/// 相对变换,用于制作阴影等效果
struct TransformStyle
{
glm::vec2 translation = glm::vec2(0);
glm::vec2 scale = glm::vec2(1);
float rotation = 0;
glm::bvec2 flip = glm::bvec2(false);
};
enum class MaterialStyleType { kFill, kStroke };
class MaterialStyle
{
public:
virtual MaterialStyleType type() const = 0;
virtual std::vector<GLfloat> encoded() const = 0;
virtual bool operator==(const MaterialStyle&) const = 0;
};
struct BaseStyle
{
std::shared_ptr<TransformStyle> transform;
std::shared_ptr<MaterialStyle> material;
};
}

View File

@ -1 +1,16 @@
#include "Element.h"
void Renderer::ElementTransform::applyTransformStyle(const TransformStyle& t)
{
center += t.translation;
size *= t.scale;
rotation += t.rotation;
flip ^= t.flip;
}
Renderer::ElementTransform Renderer::ElementTransform::appliedTransformStyle(const TransformStyle& t) const
{
ElementTransform result = *this;
result.applyTransformStyle(t);
return result;
}

View File

@ -2,17 +2,27 @@
#include <vector>
#include <QOpenGLFunctions_4_5_Compatibility>
#include "Line.h"
#include "ElementStyle.h"
namespace Renderer
{
class Element
{
public:
std::vector<GLuint> bvhChildren;
std::vector<QVector4D> bvhBound;
std::vector<GLuint> elementIndex;
std::vector<GLfloat> points;
using Contour = std::vector<std::vector<Point>>;
Element(std::vector<std::vector<Point>> lines);
struct Element
{
std::shared_ptr<Contour> contour;
std::shared_ptr<ElementStyle> style;
};
struct ElementTransform
{
glm::vec2 center;
glm::vec2 size;
float rotation; /// ½Ç¶ÈÖÆ
glm::bvec2 flip;
GLuint zIndex;
void applyTransformStyle(const TransformStyle& t);
ElementTransform appliedTransformStyle(const TransformStyle& t) const;
};
}

View File

@ -1,18 +1,17 @@
#include "ElementStyle.h"
#include "MaterialStyleFill.h"
#include "MaterialStyleStroke.h"
using namespace Renderer;
ElementStyle::ElementStyle(std::vector<GLfloat> style)
:style(style)
std::vector<BaseStyle> Renderer::ElementStyleFillDemo::toBaseStyles() const
{
return { BaseStyle(std::make_shared<TransformStyle>(),
std::make_shared<MaterialStyleFill>(std::make_shared<FillPlain>(QColor(0, 255, 0), 0, 0.8))) };
}
bool Renderer::ElementStyle::isLine()
std::vector<BaseStyle> Renderer::ElementStyleStrokeDemo::toBaseStyles() const
{
return style[0];
}
std::vector<GLfloat> ElementStyle::encoded()
{
return style;
return { BaseStyle(std::make_shared<TransformStyle>(),
std::make_shared<MaterialStyleStroke>(0.02, StrokeType::kBothSides, StrokeEndType::kRound, std::make_shared<StrokePlain>(QColor(0, 0, 255), 0, 0.8))) };
}

View File

@ -1,16 +1,31 @@
#pragma once
#include <vector>
#include <QOpenGLFunctions_4_5_Compatibility>
#include "BaseStyle.h"
namespace Renderer
{
class ElementStyle
{
public:
ElementStyle(std::vector<GLfloat> style);
bool isLine();
std::vector<GLfloat> encoded();
private:
std::vector<GLfloat> style;
/**
* @brief
* @return BaseStylezIndex10
*/
virtual std::vector<BaseStyle> toBaseStyles() const = 0;
};
// TODO: 此为示例建议写到Editor部分便于与UI绑定
class ElementStyleFillDemo : public ElementStyle
{
public:
virtual std::vector<BaseStyle> toBaseStyles() const override;
};
// TODO: 此为示例建议写到Editor部分便于与UI绑定
class ElementStyleStrokeDemo : public ElementStyle
{
public:
virtual std::vector<BaseStyle> toBaseStyles() const override;
};
}

View File

@ -25,6 +25,11 @@ namespace Renderer
bool operator< (const Point& a) const {
return fabs(x - a.x) <= eps ? y < a.y : x < a.x;
}
Point& operator= (const QPointF p){
x = p.x();
y = p.y();
return *this;
}
operator glm::dvec2() {
return glm::dvec2(x, y);
}

View File

@ -0,0 +1,48 @@
#include "MaterialStyleFill.h"
using namespace Renderer;
Renderer::FillPlain::FillPlain(QColor color, float metallic, float roughness)
: color(color), metallic(metallic), roughness(roughness)
{
}
MaterialFillType Renderer::FillPlain::type() const
{
return MaterialFillType::kPlain;
}
std::vector<GLfloat> Renderer::FillPlain::encoded() const
{
return { glm::uintBitsToFloat(glm::packUnorm4x8(glm::vec4(metallic, roughness, 0, 1))),
glm::uintBitsToFloat(glm::packUnorm4x8(glm::vec4(color.redF(), color.greenF(), color.blueF(), color.alphaF())))};
}
bool Renderer::FillPlain::operator==(const MaterialFill& m) const
{
return type() == m.type()
&& color == static_cast<const FillPlain&>(m).color
&& metallic == static_cast<const FillPlain&>(m).metallic
&& roughness == static_cast<const FillPlain&>(m).roughness;
}
Renderer::MaterialStyleFill::MaterialStyleFill(std::shared_ptr<MaterialFill> materialFill)
: materialFill(materialFill)
{
}
MaterialStyleType Renderer::MaterialStyleFill::type() const
{
return MaterialStyleType::kFill;
}
std::vector<GLfloat> Renderer::MaterialStyleFill::encoded() const
{
return materialFill->encoded();
}
bool Renderer::MaterialStyleFill::operator==(const MaterialStyle& m) const
{
return type() == m.type() && *materialFill == *static_cast<const MaterialStyleFill&>(m).materialFill;
}

View File

@ -0,0 +1,41 @@
#pragma once
#include "BaseStyle.h"
namespace Renderer
{
enum class MaterialFillType { kPlain, kLinearGradient, kRadialGradient };
class MaterialFill
{
public:
virtual MaterialFillType type() const = 0;
virtual std::vector<GLfloat> encoded() const = 0;
virtual bool operator==(const MaterialFill&) const = 0;
};
class FillPlain : public MaterialFill
{
public:
FillPlain(QColor color, float metallic, float roughness);
virtual MaterialFillType type() const override;
virtual std::vector<GLfloat> encoded() const override;
virtual bool operator==(const MaterialFill&) const override;
QColor color;
float metallic;
float roughness;
};
class MaterialStyleFill : public MaterialStyle
{
public:
MaterialStyleFill(std::shared_ptr<MaterialFill> materialFill);
virtual MaterialStyleType type() const override;
virtual std::vector<GLfloat> encoded() const override;
virtual bool operator==(const MaterialStyle&) const override;
protected:
std::shared_ptr<MaterialFill> materialFill;
};
}

View File

@ -0,0 +1,57 @@
#include "MaterialStyleStroke.h"
using namespace Renderer;
Renderer::StrokePlain::StrokePlain(QColor color, float metallic, float roughness)
: color(color), metallic(metallic), roughness(roughness)
{
}
MaterialStrokeType Renderer::StrokePlain::type() const
{
return MaterialStrokeType::kPlain;
}
std::vector<GLfloat> Renderer::StrokePlain::encoded() const
{
return { glm::uintBitsToFloat(glm::packUnorm4x8(glm::vec4(metallic, roughness, 0, 0))),
glm::uintBitsToFloat(glm::packUnorm4x8(glm::vec4(color.redF(), color.greenF(), color.blueF(), color.alphaF()))) };
}
bool Renderer::StrokePlain::operator==(const MaterialStroke& m) const
{
return type() == m.type()
&& color == static_cast<const StrokePlain&>(m).color
&& metallic == static_cast<const StrokePlain&>(m).metallic
&& roughness == static_cast<const StrokePlain&>(m).roughness;
}
Renderer::MaterialStyleStroke::MaterialStyleStroke(float width, StrokeType strokeType, StrokeEndType endType, std::shared_ptr<MaterialStroke> materialStroke)
: width(width), strokeType(strokeType), endType(endType), materialStroke(materialStroke)
{
}
MaterialStyleType Renderer::MaterialStyleStroke::type() const
{
return MaterialStyleType::kStroke;
}
std::vector<GLfloat> Renderer::MaterialStyleStroke::encoded() const
{
std::vector<GLfloat> v = { width };
auto encoded = materialStroke->encoded();
v.insert(v.end(), encoded.begin(), encoded.end());
return v;
}
bool Renderer::MaterialStyleStroke::operator==(const MaterialStyle& m) const
{
return type() == m.type() && *materialStroke == *static_cast<const MaterialStyleStroke&>(m).materialStroke;
}
float Renderer::MaterialStyleStroke::getWidth() const
{
return width;
}

View File

@ -0,0 +1,47 @@
#pragma once
#include "BaseStyle.h"
namespace Renderer
{
enum class MaterialStrokeType { kPlain };
class MaterialStroke
{
public:
virtual MaterialStrokeType type() const = 0;
virtual std::vector<GLfloat> encoded() const = 0;
virtual bool operator==(const MaterialStroke&) const = 0;
};
class StrokePlain : public MaterialStroke
{
public:
StrokePlain(QColor color, float metallic, float roughness);
virtual MaterialStrokeType type() const override;
virtual std::vector<GLfloat> encoded() const override;
virtual bool operator==(const MaterialStroke&) const override;
QColor color;
float metallic;
float roughness;
};
enum class StrokeType { kBothSides = 2, kLeftSide = 1, kRightSide = 0 };
enum class StrokeEndType { kRound };
class MaterialStyleStroke : public MaterialStyle
{
public:
MaterialStyleStroke(float width, StrokeType strokeType, StrokeEndType endType, std::shared_ptr<MaterialStroke> materialStroke);
virtual MaterialStyleType type() const override;
virtual std::vector<GLfloat> encoded() const override;
virtual bool operator==(const MaterialStyle&) const override;
float getWidth() const;
protected:
float width;
StrokeType strokeType;
StrokeEndType endType;
std::shared_ptr<MaterialStroke> materialStroke;
};
}

View File

@ -2,6 +2,7 @@
#include "../../SvgParser.h"
#include "ShortCutTree.h"
#include "LineTree.h"
#include "MaterialStyleStroke.h"
#include <QDebug>
using namespace Renderer;
@ -18,13 +19,16 @@ void Renderer::Painting::addElement(ElementWithTransform elementWithTransform)
if (it == elementPool.end())
{
auto element = elementWithTransform.element;
auto iter = contourPool.insert({ element->contour, {nullptr, nullptr} }).first;
auto iter = contourPool.insert({ element.contour, {nullptr, nullptr} }).first;
if (!element->style->isLine() && iter->second.first == nullptr)
switch (element.style->type())
{
case MaterialStyleType::kFill:
if (iter->second.first == nullptr)
{
qDebug() << "Build ShortCutTree---------------------------------------------------------------------------------------------------";
ShortCutTree shortCutTree(maxLineCount);
shortCutTree.buildShortCutTree(*element->contour);
shortCutTree.buildShortCutTree(*element.contour);
ContourBuffer elementBuffer;
std::vector<BvhTreeData> bvhLeaves = shortCutTree.getPointLineAndBvhTree(elementBuffer.pointBuffer, elementBuffer.lineBuffer);
BvhTree bvhTree;
@ -33,11 +37,13 @@ void Renderer::Painting::addElement(ElementWithTransform elementWithTransform)
iter->second.first = std::make_shared<ContourBuffer>(elementBuffer);
qDebug() << "---------------------------------------------------------------------------------------------------------------------";
}
else if (element->style->isLine() && iter->second.second == nullptr)
break;
case MaterialStyleType::kStroke:
if (iter->second.second == nullptr)
{
qDebug() << "Build LineTree-------------------------------------------------------------------------------------------------------";
LineTree lineTree(maxLineCount);
lineTree.buildLineTree(*element->contour, element->style->encoded()[1]);
lineTree.buildLineTree(*element.contour, std::static_pointer_cast<MaterialStyleStroke>(element.style)->getWidth());
ContourBuffer elementBuffer;
std::vector<BvhTreeData> bvhLeaves = lineTree.getPointLineAndBvhTree(elementBuffer.pointBuffer, elementBuffer.lineBuffer);
BvhTree bvhTree;
@ -45,19 +51,45 @@ void Renderer::Painting::addElement(ElementWithTransform elementWithTransform)
bvhTree.getBvhArray(elementBuffer.bvhChildren, elementBuffer.bvhBounds);
iter->second.second = std::make_shared<ContourBuffer>(elementBuffer);
qDebug() << "---------------------------------------------------------------------------------------------------------------------";
}
stylePool.insert({ element->style, 0 });
break;
}
stylePool.insert({ element.style, 0 });
elementPool.insert({ element, 0 });
}
elements.push_back(elementWithTransform);
}
void Renderer::Painting::addElement(const Element& element, const ElementTransform& transform)
{
auto contour = element.contour;
auto it = elementStyleMap.find(element.style);
if (it == elementStyleMap.end())
{
std::vector<BaseStyle> baseStyles;
for (auto& style : element.style->toBaseStyles())
{
auto [iter, _] = styleSet.insert(style.material);
baseStyles.push_back(BaseStyle{ style.transform, *iter });
}
it = elementStyleMap.insert({ element.style, baseStyles }).first;
}
for (int i = 0; i < it->second.size(); i++)
{
auto& style = it->second[i];
ElementTransform trans = transform;
trans.applyTransformStyle(*style.transform);
trans.zIndex = trans.zIndex * 10 + i;
addElement(ElementWithTransform{ BaseElement{element.contour, style.material}, BaseTransform(trans) });
}
}
void Renderer::Painting::addElement(std::shared_ptr<Element> element, QVector4D bound, float rotation, int zIndex)
{
addElement(ElementWithTransform{ element, bound, rotation, zIndex });
}
GLuint encodeZIndexRotation(GLuint zIndex, float rotation)
@ -65,11 +97,19 @@ GLuint encodeZIndexRotation(GLuint zIndex, float rotation)
return GLuint(rotation / 360 * 0x10000 + zIndex * 0x10000);
}
BvhTreeData Painting::encodeElementLeaf(ElementWithTransform e)
{
QVector4D bound(e.transform.bound.x, e.transform.bound.y, e.transform.bound.z, e.transform.bound.w);
GLuint rightSon = GLuint(glm::mod(e.transform.rotation, 360.f) * (1 << 16))
+ (e.transform.flip.x << 16) + (e.transform.flip.y << 17) + (e.transform.zIndex << 18);
return BvhTreeData(bound, elementPool[e.element], rightSon);
}
void Painting::generateBuffers()
{
qDebug() << elementPool.size();
qDebug() << contourPool.size();
qDebug() << stylePool.size();
qDebug() << "Element Count: " << elementPool.size();
qDebug() << "Coutour Count: " << contourPool.size();
qDebug() << " Style Count: " << stylePool.size();
bvhChildren.clear();
@ -87,8 +127,8 @@ void Painting::generateBuffers()
std::vector<BvhTreeData> rootBvhTreeData;
for (auto& i : elements)
{
rootBvhTreeData.push_back(BvhTreeData(i.bound, elementPool[i.element], encodeZIndexRotation(i.zIndex, i.rotation)));
//rootBvhTreeData.push_back(BvhTreeData(i.bound, 1, encodeZIndexRotation(i.zIndex, i.rotation)));
rootBvhTreeData.push_back(encodeElementLeaf(i));
//rootBvhTreeData.back().show();
}
BvhTree rootBvhTree;
rootBvhTree.buildBvhTree(rootBvhTreeData.data(), rootBvhTreeData.size());
@ -117,8 +157,8 @@ void Painting::generateBuffers()
for (auto& i : elementPool)
{
//qDebug() <<"element:" << i.second;
std::shared_ptr<ContourBuffer> contourBuffer = i.first->style->isLine() ? contourPool[i.first->contour].second : contourPool[i.first->contour].first;
elementOffset.push_back({ contourBuffer->bvhOffset, stylePool[i.first->style], contourBuffer->pointsOffset, contourBuffer->linesOffset });
std::shared_ptr<ContourBuffer> contourBuffer = i.first.style->type()==MaterialStyleType::kStroke ? contourPool[i.first.contour].second : contourPool[i.first.contour].first;
elementOffset.push_back({ contourBuffer->bvhOffset, stylePool[i.first.style], contourBuffer->pointsOffset, contourBuffer->linesOffset });
//std::cout << std::format("{} {} {} {}\n", contourBuffer->bvhOffset, stylePool[i.first->style], contourBuffer->pointsOffset, contourBuffer->linesOffset);
}
}
@ -139,3 +179,16 @@ void Renderer::Painting::insertContourBuffer(std::shared_ptr<ContourBuffer> buff
bvhChildren.insert(bvhChildren.end(), buffer->bvhChildren.begin(), buffer->bvhChildren.end());
bvhBounds.insert(bvhBounds.end(), buffer->bvhBounds.begin(), buffer->bvhBounds.end());
}
bool Renderer::BaseElement::operator<(const BaseElement& e) const
{
return contour == e.contour ? style < e.style : contour < e.contour;
}
Renderer::BaseTransform::BaseTransform(ElementTransform t)
: bound(glm::vec4(t.center - t.size / 2.f, t.center + t.size / 2.f))
, rotation(t.rotation)
, flip(t.flip)
, zIndex(t.zIndex)
{
}

View File

@ -1,28 +1,35 @@
#pragma once
#include <vector>
#include <set>
#include <QOpenGLFunctions_4_5_Compatibility>
#include <glm/glm.hpp>
#include "Line.h"
#include "BvhTree.h"
#include "ElementStyle.h"
#include <glm/glm.hpp>
//#include "Element.h"
#include "Element.h"
namespace Renderer
{
using Contour = std::vector<std::vector<Point>>;
struct Element
struct BaseElement
{
std::shared_ptr<Contour> contour;
std::shared_ptr<ElementStyle> style;
std::shared_ptr<MaterialStyle> style;
bool operator<(const BaseElement& e) const;
};
struct BaseTransform
{
glm::vec4 bound;
float rotation;
glm::bvec2 flip;
GLuint zIndex;
BaseTransform(ElementTransform t);
};
struct ElementWithTransform
{
std::shared_ptr<Element> element;
QVector4D bound;
float rotation;
int zIndex;
BaseElement element;
BaseTransform transform;
};
struct ContourBuffer
@ -37,6 +44,18 @@ namespace Renderer
GLuint bvhOffset;
};
struct CompareMaterialStyle
{
inline bool operator()(const std::shared_ptr<MaterialStyle>& left, const std::shared_ptr<MaterialStyle>& right) const
{
if (left == right || *left == *right)
return false;
else
return left < right;
}
};
class Painting
{
public:
@ -49,16 +68,19 @@ namespace Renderer
Painting();
void addElement(ElementWithTransform element);
void addElement(const Element& element, const ElementTransform& transform);
void addElement(std::shared_ptr<Element> element, QVector4D bound, float rotation, int zIndex);
void generateBuffers();
GLuint getElementCount();
private:
std::unordered_map<std::shared_ptr<Contour>, std::pair<std::shared_ptr<ContourBuffer>/*Ãæ*/, std::shared_ptr<ContourBuffer>/*Ïß*/>> contourPool;
std::unordered_map<std::shared_ptr<ElementStyle>, GLuint> stylePool;
std::map<std::shared_ptr<Element>, GLuint> elementPool;
std::set<std::shared_ptr<MaterialStyle>, CompareMaterialStyle> styleSet;
std::unordered_map<std::shared_ptr<ElementStyle>, std::vector<BaseStyle>> elementStyleMap;
std::unordered_map<std::shared_ptr<MaterialStyle>, GLuint> stylePool;
std::map<BaseElement, GLuint> elementPool;
std::vector<ElementWithTransform> elements;
void insertContourBuffer(std::shared_ptr<ContourBuffer> buffer);
BvhTreeData encodeElementLeaf(ElementWithTransform e);
};
}

View File

@ -0,0 +1,160 @@
#include "ElementRenderer.h"
#include <QOpenGLFramebufferObject>
#include <QOpenGLPaintDevice>
#include <QDebug>
#include <QSurface>
#include <QPainterPath>
#include <QPainter>
#include <limits>
#include <glm/gtc/matrix_transform.hpp>
#include "../Painting/Element.h"
#include "../Painting/Painting.h"
#include "../Painting/MaterialStyleStroke.h"
using namespace Renderer;
Renderer::ElementRenderer::ElementRenderer(QOpenGLWidget* glWidget)
: glWidget(glWidget)
{
}
void Renderer::ElementRenderer::initialize()
{
initializeOpenGLFunctions();
shader = std::make_shared<QOpenGLShaderProgram>();
if (!shader->addShaderFromSourceFile(QOpenGLShader::Compute, ":/Shaders/element.comp"))
qDebug() << "ERROR: " << shader->log();
if (!shader->link())
qDebug() << "ERROR: " << shader->log();
}
std::vector<glm::vec2> generatePathBuffer(const QPainterPath& path)
{
std::vector<glm::vec2> pathBuffer;
for (int i = 0; i < path.elementCount(); i++)
{
QPainterPath::Element element = path.elementAt(i);
switch (element.type)
{
case QPainterPath::MoveToElement:
qDebug() << "MoveToElement";
pathBuffer.push_back(glm::vec2(std::numeric_limits<float>::infinity()));
pathBuffer.push_back(glm::vec2(element.x, element.y));
break;
case QPainterPath::LineToElement:
qDebug() << "LineToElement";
glm::vec2 end = glm::vec2(element.x, element.y);
glm::vec2 mid = (pathBuffer.back() + end) / 2.f;
pathBuffer.push_back(mid);
pathBuffer.push_back(mid);
pathBuffer.push_back(end);
break;
case QPainterPath::CurveToElement:
qDebug() << "CurveToElement";
pathBuffer.push_back(glm::vec2(element.x, element.y));
break;
case QPainterPath::CurveToDataElement:
qDebug() << "CurveToDataElement";
pathBuffer.push_back(glm::vec2(element.x, element.y));
break;
}
qDebug() << element;
}
return pathBuffer;
}
std::vector<GLfloat> generateStyleBuffer(const std::vector<BaseStyle>& styles)
{
std::vector<GLfloat> styleBuffer;
for (auto& style : styles)
{
styleBuffer.push_back(style.transform->translation.x);
styleBuffer.push_back(style.transform->translation.y);
styleBuffer.push_back(style.transform->scale.x);
styleBuffer.push_back(style.transform->scale.y);
styleBuffer.push_back(style.transform->rotation);
styleBuffer.push_back(glm::uintBitsToFloat(glm::packUnorm2x16(style.transform->flip)));
auto encoded = style.material->encoded();
styleBuffer.insert(styleBuffer.end(), encoded.begin(), encoded.end());
}
return styleBuffer;
}
QRectF calcBoundingRect(const QPainterPath& path, const std::vector<BaseStyle>& styles)
{
QRectF bound = path.boundingRect();
ElementTransform originTransform{ glm::vec2(bound.center().x(), bound.center().y()), glm::vec2(bound.width(), bound.height()), 0, glm::bvec2(false), 0 };
glm::vec2 leftTop(std::numeric_limits<float>::max()), rightBottom(std::numeric_limits<float>::min());
for (auto& baseStyle : styles)
{
BaseTransform transform(originTransform.appliedTransformStyle(*baseStyle.transform));
if (baseStyle.material->type() == MaterialStyleType::kStroke)
{
float halfWidth = std::static_pointer_cast<MaterialStyleStroke>(baseStyle.material)->getWidth() / 2;
transform.bound.x -= halfWidth;
transform.bound.y -= halfWidth;
transform.bound.z += halfWidth;
transform.bound.w += halfWidth;
}
glm::vec2 points[] = {
glm::vec2(transform.bound.x, transform.bound.y),
glm::vec2(transform.bound.x, transform.bound.w),
glm::vec2(transform.bound.z, transform.bound.w),
glm::vec2(transform.bound.z, transform.bound.y)
};
for (auto& point : points)
{
float angle = glm::radians(baseStyle.transform->rotation);
point = glm::mat2{ {cos(angle), -sin(angle)}, {sin(angle), cos(angle)} } *point;
leftTop = glm::min(leftTop, point);
rightBottom = glm::max(rightBottom, point);
}
}
return QRectF(QPointF(leftTop.x, leftTop.y), QPointF(rightBottom.x, rightBottom.y));
}
std::pair<QImage, QPointF> Renderer::ElementRenderer::drawElement(const QPainterPath& path, const ElementStyle& style, float pixelRatio, bool releaseContext)
{
auto baseStyles = style.toBaseStyles();
QRectF bound = calcBoundingRect(path, baseStyles);
QPointF leftTop = bound.topLeft();
QSize size(ceil(bound.width() * pixelRatio), ceil(bound.height() * pixelRatio));
auto pathBuffer = generatePathBuffer(path);
auto styleBuffer = generateStyleBuffer(baseStyles);
if (releaseContext) glWidget->makeCurrent();
GLuint ssbo[2];
glGenBuffers(2, ssbo);
glBindBuffer(GL_SHADER_STORAGE_BUFFER, ssbo[0]);
glBufferData(GL_SHADER_STORAGE_BUFFER, pathBuffer.size() * sizeof(glm::vec2), pathBuffer.data(), GL_STATIC_READ);
glBindBuffer(GL_SHADER_STORAGE_BUFFER, ssbo[1]);
glBufferData(GL_SHADER_STORAGE_BUFFER, styleBuffer.size() * sizeof(GLfloat), styleBuffer.data(), GL_STATIC_READ);
glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0);
auto fbo = QOpenGLFramebufferObject(size, QOpenGLFramebufferObject::NoAttachment, GL_TEXTURE_2D);
fbo.bind();
glClearColor(0, 0, 0, 0);
glClear(GL_COLOR_BUFFER_BIT);
fbo.release();
shader->bind();
shader->setUniformValue("pathSize", (GLint)pathBuffer.size());
shader->setUniformValue("styleSize", (GLint)styleBuffer.size());
shader->setUniformValue("leftTop", leftTop);
shader->setUniformValue("pixelRatio", pixelRatio);
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 10, ssbo[0]);
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 11, ssbo[1]);
glBindImageTexture(0, fbo.texture(), 0, GL_FALSE, 0, GL_READ_WRITE, GL_RGBA8);
glDispatchCompute(ceil(size.width() / 8.), ceil(size.height() / 8.), 1);
shader->release();
auto image = fbo.toImage(false);
glDeleteBuffers(2, ssbo);
if (releaseContext) glWidget->doneCurrent();
return { image, leftTop };
}

View File

@ -0,0 +1,35 @@
#pragma once
#include <QOpenGLWidget>
#include <QOpenGLFunctions_4_5_Core>
#include <QOPenGLShaderProgram>
#include "../Painting/ElementStyle.h"
namespace Renderer
{
class ElementRenderer : protected QOpenGLFunctions_4_5_Core
{
public:
ElementRenderer(QOpenGLWidget* glWidget);
/**
* @brief initializeGL
*/
void initialize();
/**
* @brief QImage
* @param path
* @param style
* @param pixelRatio path
* @param releaseContext initializeGL, resizeGLpaintGLfalse
* @return QImage
* @return QPointF QPainterPath
*/
std::pair<QImage, QPointF> drawElement(const QPainterPath& path, const ElementStyle& style, float pixelRatio, bool releaseContext = true);
protected:
QOpenGLWidget* glWidget;
std::shared_ptr<QOpenGLShaderProgram> shader;
};
}

View File

@ -1,23 +1,23 @@
QMAKE_CXX.QT_COMPILER_STDCXX = 199711L
QMAKE_CXX.QMAKE_MSC_VER = 1933
QMAKE_CXX.QMAKE_MSC_FULL_VER = 193331630
QMAKE_CXX.QMAKE_MSC_VER = 1934
QMAKE_CXX.QMAKE_MSC_FULL_VER = 193431937
QMAKE_CXX.COMPILER_MACROS = \
QT_COMPILER_STDCXX \
QMAKE_MSC_VER \
QMAKE_MSC_FULL_VER
QMAKE_CXX.INCDIRS = \
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.33.31629\\include" \
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.33.31629\\ATLMFC\\include" \
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.34.31933\\include" \
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.34.31933\\ATLMFC\\include" \
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\VS\\include" \
"C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\ucrt" \
"C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.19041.0\\\\um" \
"C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.19041.0\\\\shared" \
"C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.19041.0\\\\winrt" \
"C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.19041.0\\\\cppwinrt" \
"C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.22000.0\\ucrt" \
"C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\um" \
"C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\shared" \
"C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\winrt" \
"C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\cppwinrt" \
"C:\\Program Files (x86)\\Windows Kits\\NETFXSDK\\4.8\\include\\um"
QMAKE_CXX.LIBDIRS = \
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.33.31629\\ATLMFC\\lib\\x64" \
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.33.31629\\lib\\x64" \
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.34.31933\\ATLMFC\\lib\\x64" \
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.34.31933\\lib\\x64" \
"C:\\Program Files (x86)\\Windows Kits\\NETFXSDK\\4.8\\lib\\um\\x64" \
"C:\\Program Files (x86)\\Windows Kits\\10\\lib\\10.0.19041.0\\ucrt\\x64" \
"C:\\Program Files (x86)\\Windows Kits\\10\\\\lib\\10.0.19041.0\\\\um\\x64"
"C:\\Program Files (x86)\\Windows Kits\\10\\lib\\10.0.22000.0\\ucrt\\x64" \
"C:\\Program Files (x86)\\Windows Kits\\10\\\\lib\\10.0.22000.0\\\\um\\x64"

View File

@ -1,9 +1,9 @@
QT += core core-private gui gui-private
CORE_PUB_INC_DIR = $$PWD/../include/FramelessHelper/Core
CORE_PUB_INC_DIR = $$PWD/../../include/FramelessHelper/Core
CORE_PRIV_INC_DIR = $$CORE_PUB_INC_DIR/private
CORE_EXTRA_INC_DIR = $$PWD/inc/core
CORE_SRC_DIR = $$PWD/../src/core
CORE_EXTRA_INC_DIR = $$PWD/../inc/core
CORE_SRC_DIR = $$PWD/../../src/core
DEFINES += \
FRAMELESSHELPER_CORE_STATIC

View File

@ -11,11 +11,11 @@
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{F1BC586E-F1ED-320C-899E-76CCB5660AE1}</ProjectGuid>
<ProjectGuid>{954D3D24-DF86-33A3-8867-D1735CCBDB10}</ProjectGuid>
<RootNamespace>FramelessHelperCore</RootNamespace>
<Keyword>QtVS_v304</Keyword>
<WindowsTargetPlatformVersion>10.0.19041.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.19041.0</WindowsTargetPlatformMinVersion>
<WindowsTargetPlatformVersion>10.0.22000.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.22000.0</WindowsTargetPlatformMinVersion>
<QtMsBuild Condition="'$(QtMsBuild)'=='' or !Exists('$(QtMsBuild)\qt.targets')">$(MSBuildProjectDirectory)\QtMsBuild</QtMsBuild>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
@ -78,7 +78,7 @@
</ImportGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;..\include\FramelessHelper\Core;..\include\FramelessHelper\Core\private;inc\core;release;E:\VulkanSDK\1.3.216.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;..\..\include\FramelessHelper\Core;..\..\include\FramelessHelper\Core\private;..\inc\core;release;E:\VulkanSDK\1.3.216.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)</AdditionalOptions>
<AssemblerListingLocation>release\</AssemblerListingLocation>
<BrowseInformation>false</BrowseInformation>
@ -121,7 +121,7 @@
</ResourceCompile>
<QtMoc>
<CompilerFlavor>msvc</CompilerFlavor>
<Include>D:/??2022/ArchitectureColoredPainting/FramelessHelper/qmake/$(Configuration)/moc_predefs.h</Include>
<Include>./$(Configuration)/moc_predefs.h</Include>
<ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription>
<DynamicSource>output</DynamicSource>
<QtMocDir>$(Configuration)</QtMocDir>
@ -137,7 +137,7 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<AdditionalIncludeDirectories>GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;..\include\FramelessHelper\Core;..\include\FramelessHelper\Core\private;inc\core;debug;E:\VulkanSDK\1.3.216.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;..\..\include\FramelessHelper\Core;..\..\include\FramelessHelper\Core\private;..\inc\core;debug;E:\VulkanSDK\1.3.216.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)</AdditionalOptions>
<AssemblerListingLocation>debug\</AssemblerListingLocation>
<BrowseInformation>false</BrowseInformation>
@ -146,7 +146,7 @@
<ExceptionHandling>Sync</ExceptionHandling>
<ObjectFileName>debug\</ObjectFileName>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;FRAMELESSHELPER_CORE_STATIC;QT_NO_CAST_TO_ASCII;QT_NO_CAST_FROM_ASCII;QT_NO_CAST_FROM_BYTEARRAY;QT_NO_URL_CAST_FROM_STRING;QT_NO_NARROWING_CONVERSIONS_IN_CONNECT;QT_NO_FOREACH;QT_USE_QSTRINGBUILDER;QT_USE_FAST_OPERATOR_PLUS;QT_DEPRECATED_WARNINGS;QT_DEPRECATED_WARNINGS_SINCE=0x070000;QT_WARN_DEPRECATED_UP_TO=0x070000;QT_DISABLE_DEPRECATED_BEFORE=0x070000;QT_DISABLE_DEPRECATED_UP_TO=0x070000;QT_NO_KEYWORDS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;FRAMELESSHELPER_CORE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<SuppressStartupBanner>true</SuppressStartupBanner>
@ -184,7 +184,7 @@
</QtRcc>
<QtMoc>
<CompilerFlavor>msvc</CompilerFlavor>
<Include>D:/??2022/ArchitectureColoredPainting/FramelessHelper/qmake/$(Configuration)/moc_predefs.h</Include>
<Include>./$(Configuration)/moc_predefs.h</Include>
<ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription>
<DynamicSource>output</DynamicSource>
<QtMocDir>$(Configuration)</QtMocDir>
@ -192,53 +192,53 @@
</QtMoc>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\src\core\chromepalette.cpp" />
<ClCompile Include="..\src\core\framelessconfig.cpp" />
<ClCompile Include="..\src\core\framelesshelper_qt.cpp" />
<ClCompile Include="..\src\core\framelesshelper_win.cpp" />
<ClCompile Include="..\src\core\framelesshelpercore_global.cpp" />
<ClCompile Include="..\src\core\framelessmanager.cpp" />
<ClCompile Include="..\src\core\micamaterial.cpp" />
<ClCompile Include="..\src\core\platformsupport_win.cpp" />
<ClCompile Include="..\src\core\registrykey.cpp" />
<ClCompile Include="..\src\core\sysapiloader.cpp" />
<ClCompile Include="..\src\core\utils.cpp" />
<ClCompile Include="..\src\core\utils_win.cpp" />
<ClCompile Include="..\src\core\windowborderpainter.cpp" />
<ClCompile Include="..\src\core\winverhelper.cpp" />
<ClCompile Include="..\..\src\core\chromepalette.cpp" />
<ClCompile Include="..\..\src\core\framelessconfig.cpp" />
<ClCompile Include="..\..\src\core\framelesshelper_qt.cpp" />
<ClCompile Include="..\..\src\core\framelesshelper_win.cpp" />
<ClCompile Include="..\..\src\core\framelesshelpercore_global.cpp" />
<ClCompile Include="..\..\src\core\framelessmanager.cpp" />
<ClCompile Include="..\..\src\core\micamaterial.cpp" />
<ClCompile Include="..\..\src\core\platformsupport_win.cpp" />
<ClCompile Include="..\..\src\core\registrykey.cpp" />
<ClCompile Include="..\..\src\core\sysapiloader.cpp" />
<ClCompile Include="..\..\src\core\utils.cpp" />
<ClCompile Include="..\..\src\core\utils_win.cpp" />
<ClCompile Include="..\..\src\core\windowborderpainter.cpp" />
<ClCompile Include="..\..\src\core\winverhelper.cpp" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="..\include\FramelessHelper\Core\chromepalette.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\chromepalette.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\chromepalette_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\private\chromepalette_p.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\framelessconfig_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\private\framelessconfig_p.h">
</QtMoc>
<ClInclude Include="inc\core\framelesshelper.version" />
<QtMoc Include="..\include\FramelessHelper\Core\framelesshelper_qt.h">
<ClInclude Include="..\inc\core\framelesshelper.version" />
<QtMoc Include="..\..\include\FramelessHelper\Core\framelesshelper_qt.h">
</QtMoc>
<ClInclude Include="..\include\FramelessHelper\Core\framelesshelper_win.h" />
<ClInclude Include="..\include\FramelessHelper\Core\framelesshelper_windows.h" />
<QtMoc Include="..\include\FramelessHelper\Core\framelesshelpercore_global.h">
<ClInclude Include="..\..\include\FramelessHelper\Core\framelesshelper_win.h" />
<ClInclude Include="..\..\include\FramelessHelper\Core\framelesshelper_windows.h" />
<QtMoc Include="..\..\include\FramelessHelper\Core\framelesshelpercore_global.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\framelessmanager.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\framelessmanager.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\framelessmanager_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\private\framelessmanager_p.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\micamaterial.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\micamaterial.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\micamaterial_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\private\micamaterial_p.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\registrykey_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\private\registrykey_p.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\sysapiloader_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\private\sysapiloader_p.h">
</QtMoc>
<ClInclude Include="..\include\FramelessHelper\Core\utils.h" />
<QtMoc Include="..\include\FramelessHelper\Core\windowborderpainter.h">
<ClInclude Include="..\..\include\FramelessHelper\Core\utils.h" />
<QtMoc Include="..\..\include\FramelessHelper\Core\windowborderpainter.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\windowborderpainter_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\private\windowborderpainter_p.h">
</QtMoc>
<ClInclude Include="..\include\FramelessHelper\Core\private\winverhelper_p.h" />
<ClInclude Include="..\..\include\FramelessHelper\Core\private\winverhelper_p.h" />
</ItemGroup>
<ItemGroup>
<CustomBuild Include="debug\moc_predefs.h.cbt">
@ -259,10 +259,10 @@
</CustomBuild>
</ItemGroup>
<ItemGroup>
<QtRcc Include="..\src\core\framelesshelpercore.qrc">
<QtRcc Include="..\..\src\core\framelesshelpercore.qrc">
</QtRcc>
<None Include="..\src\core\resources\fonts\iconfont.ttf" />
<None Include="..\src\core\resources\images\noise.png" />
<None Include="..\..\src\core\resources\fonts\iconfont.ttf" />
<None Include="..\..\src\core\resources\images\noise.png" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')">

View File

@ -37,102 +37,102 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\core\chromepalette.cpp">
<ClCompile Include="..\..\src\core\chromepalette.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\framelessconfig.cpp">
<ClCompile Include="..\..\src\core\framelessconfig.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\framelesshelper_qt.cpp">
<ClCompile Include="..\..\src\core\framelesshelper_qt.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\framelesshelper_win.cpp">
<ClCompile Include="..\..\src\core\framelesshelper_win.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\framelesshelpercore_global.cpp">
<ClCompile Include="..\..\src\core\framelesshelpercore_global.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\framelessmanager.cpp">
<ClCompile Include="..\..\src\core\framelessmanager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\micamaterial.cpp">
<ClCompile Include="..\..\src\core\micamaterial.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\platformsupport_win.cpp">
<ClCompile Include="..\..\src\core\platformsupport_win.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\registrykey.cpp">
<ClCompile Include="..\..\src\core\registrykey.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\sysapiloader.cpp">
<ClCompile Include="..\..\src\core\sysapiloader.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\utils.cpp">
<ClCompile Include="..\..\src\core\utils.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\utils_win.cpp">
<ClCompile Include="..\..\src\core\utils_win.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\windowborderpainter.cpp">
<ClCompile Include="..\..\src\core\windowborderpainter.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\winverhelper.cpp">
<ClCompile Include="..\..\src\core\winverhelper.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<QtMoc Include="..\include\FramelessHelper\Core\chromepalette.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\chromepalette.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\chromepalette_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\private\chromepalette_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\framelessconfig_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\private\framelessconfig_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClInclude Include="inc\core\framelesshelper.version">
<ClInclude Include="..\inc\core\framelesshelper.version">
<Filter>Header Files</Filter>
</ClInclude>
<QtMoc Include="..\include\FramelessHelper\Core\framelesshelper_qt.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\framelesshelper_qt.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClInclude Include="..\include\FramelessHelper\Core\framelesshelper_win.h">
<ClInclude Include="..\..\include\FramelessHelper\Core\framelesshelper_win.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\include\FramelessHelper\Core\framelesshelper_windows.h">
<ClInclude Include="..\..\include\FramelessHelper\Core\framelesshelper_windows.h">
<Filter>Header Files</Filter>
</ClInclude>
<QtMoc Include="..\include\FramelessHelper\Core\framelesshelpercore_global.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\framelesshelpercore_global.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\framelessmanager.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\framelessmanager.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\framelessmanager_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\private\framelessmanager_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\micamaterial.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\micamaterial.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\micamaterial_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\private\micamaterial_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\registrykey_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\private\registrykey_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\sysapiloader_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\private\sysapiloader_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClInclude Include="..\include\FramelessHelper\Core\utils.h">
<ClInclude Include="..\..\include\FramelessHelper\Core\utils.h">
<Filter>Header Files</Filter>
</ClInclude>
<QtMoc Include="..\include\FramelessHelper\Core\windowborderpainter.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\windowborderpainter.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\windowborderpainter_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Core\private\windowborderpainter_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClInclude Include="..\include\FramelessHelper\Core\private\winverhelper_p.h">
<ClInclude Include="..\..\include\FramelessHelper\Core\private\winverhelper_p.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
@ -173,13 +173,13 @@
</ItemGroup>
<ItemGroup>
<QtRcc Include="..\src\core\framelesshelpercore.qrc">
<QtRcc Include="..\..\src\core\framelesshelpercore.qrc">
<Filter>Resource Files</Filter>
</QtRcc>
<None Include="..\src\core\resources\fonts\iconfont.ttf">
<None Include="..\..\src\core\resources\fonts\iconfont.ttf">
<Filter>Resource Files</Filter>
</None>
<None Include="..\src\core\resources\images\noise.png">
<None Include="..\..\src\core\resources\images\noise.png">
<Filter>Resource Files</Filter>
</None>
</ItemGroup>

View File

@ -0,0 +1,23 @@
QMAKE_CXX.QT_COMPILER_STDCXX = 199711L
QMAKE_CXX.QMAKE_MSC_VER = 1934
QMAKE_CXX.QMAKE_MSC_FULL_VER = 193431937
QMAKE_CXX.COMPILER_MACROS = \
QT_COMPILER_STDCXX \
QMAKE_MSC_VER \
QMAKE_MSC_FULL_VER
QMAKE_CXX.INCDIRS = \
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.34.31933\\include" \
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.34.31933\\ATLMFC\\include" \
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\VS\\include" \
"C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.22000.0\\ucrt" \
"C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\um" \
"C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\shared" \
"C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\winrt" \
"C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\cppwinrt" \
"C:\\Program Files (x86)\\Windows Kits\\NETFXSDK\\4.8\\include\\um"
QMAKE_CXX.LIBDIRS = \
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.34.31933\\ATLMFC\\lib\\x64" \
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.34.31933\\lib\\x64" \
"C:\\Program Files (x86)\\Windows Kits\\NETFXSDK\\4.8\\lib\\um\\x64" \
"C:\\Program Files (x86)\\Windows Kits\\10\\lib\\10.0.22000.0\\ucrt\\x64" \
"C:\\Program Files (x86)\\Windows Kits\\10\\\\lib\\10.0.22000.0\\\\um\\x64"

View File

@ -1,8 +1,8 @@
QT += widgets widgets-private
WIDGETS_PUB_INC_DIR = $$PWD/../include/FramelessHelper/Widgets
WIDGETS_PUB_INC_DIR = $$PWD/../../include/FramelessHelper/Widgets
WIDGETS_PRIV_INC_DIR = $$WIDGETS_PUB_INC_DIR/private
WIDGETS_SRC_DIR = $$PWD/../src/widgets
WIDGETS_SRC_DIR = $$PWD/../../src/widgets
DEFINES += \
FRAMELESSHELPER_WIDGETS_STATIC

View File

@ -11,11 +11,11 @@
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{61651EC8-A30E-3935-BD0C-A01AE3EE0AD9}</ProjectGuid>
<ProjectGuid>{E7A71E05-4AA5-31DB-A17D-542FC7BD83A3}</ProjectGuid>
<RootNamespace>FramelessHelperWidgets</RootNamespace>
<Keyword>QtVS_v304</Keyword>
<WindowsTargetPlatformVersion>10.0.19041.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.19041.0</WindowsTargetPlatformMinVersion>
<WindowsTargetPlatformVersion>10.0.22000.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.22000.0</WindowsTargetPlatformMinVersion>
<QtMsBuild Condition="'$(QtMsBuild)'=='' or !Exists('$(QtMsBuild)\qt.targets')">$(MSBuildProjectDirectory)\QtMsBuild</QtMsBuild>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
@ -78,7 +78,7 @@
</ImportGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;..\include\FramelessHelper\Widgets;..\include\FramelessHelper\Widgets\private;release;E:\VulkanSDK\1.3.216.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;..\..\include\FramelessHelper\Widgets;..\..\include\FramelessHelper\Widgets\private;release;E:\VulkanSDK\1.3.216.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)</AdditionalOptions>
<AssemblerListingLocation>release\</AssemblerListingLocation>
<BrowseInformation>false</BrowseInformation>
@ -130,7 +130,7 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<AdditionalIncludeDirectories>..\include\FramelessHelper\Widgets;..\include\FramelessHelper\Widgets\private;..\include\FramelessHelper\Core\..\..;..\include\FramelessHelper\Core;..\include\FramelessHelper\Core\private;inc\core;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;..\..\include\FramelessHelper\Widgets;..\..\include\FramelessHelper\Widgets\private;debug;..\..\include;..\inc\core;..\..\include\FramelessHelper\Core;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)</AdditionalOptions>
<AssemblerListingLocation>debug\</AssemblerListingLocation>
<BrowseInformation>false</BrowseInformation>
@ -139,7 +139,7 @@
<ExceptionHandling>Sync</ExceptionHandling>
<ObjectFileName>debug\</ObjectFileName>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;FRAMELESSHELPER_WIDGETS_STATIC;QT_NO_CAST_TO_ASCII;QT_NO_CAST_FROM_ASCII;QT_NO_CAST_FROM_BYTEARRAY;QT_NO_URL_CAST_FROM_STRING;QT_NO_NARROWING_CONVERSIONS_IN_CONNECT;QT_NO_FOREACH;QT_USE_QSTRINGBUILDER;QT_USE_FAST_OPERATOR_PLUS;QT_DEPRECATED_WARNINGS;QT_DEPRECATED_WARNINGS_SINCE=0x070000;QT_WARN_DEPRECATED_UP_TO=0x070000;QT_DISABLE_DEPRECATED_BEFORE=0x070000;QT_DISABLE_DEPRECATED_UP_TO=0x070000;QT_NO_KEYWORDS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;FRAMELESSHELPER_WIDGETS_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<SuppressStartupBanner>true</SuppressStartupBanner>
@ -178,42 +178,42 @@
</QtMoc>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\src\widgets\framelessdialog.cpp" />
<ClCompile Include="..\src\widgets\framelesshelperwidgets_global.cpp" />
<ClCompile Include="..\src\widgets\framelessmainwindow.cpp" />
<ClCompile Include="..\src\widgets\framelesswidget.cpp" />
<ClCompile Include="..\src\widgets\framelesswidgetshelper.cpp" />
<ClCompile Include="..\src\widgets\standardsystembutton.cpp" />
<ClCompile Include="..\src\widgets\standardtitlebar.cpp" />
<ClCompile Include="..\src\widgets\widgetssharedhelper.cpp" />
<ClCompile Include="..\..\src\widgets\framelessdialog.cpp" />
<ClCompile Include="..\..\src\widgets\framelesshelperwidgets_global.cpp" />
<ClCompile Include="..\..\src\widgets\framelessmainwindow.cpp" />
<ClCompile Include="..\..\src\widgets\framelesswidget.cpp" />
<ClCompile Include="..\..\src\widgets\framelesswidgetshelper.cpp" />
<ClCompile Include="..\..\src\widgets\standardsystembutton.cpp" />
<ClCompile Include="..\..\src\widgets\standardtitlebar.cpp" />
<ClCompile Include="..\..\src\widgets\widgetssharedhelper.cpp" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="..\include\FramelessHelper\Widgets\framelessdialog.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\framelessdialog.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\private\framelessdialog_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\private\framelessdialog_p.h">
</QtMoc>
<ClInclude Include="..\include\FramelessHelper\Widgets\framelesshelperwidgets_global.h" />
<QtMoc Include="..\include\FramelessHelper\Widgets\framelessmainwindow.h">
<ClInclude Include="..\..\include\FramelessHelper\Widgets\framelesshelperwidgets_global.h" />
<QtMoc Include="..\..\include\FramelessHelper\Widgets\framelessmainwindow.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\private\framelessmainwindow_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\private\framelessmainwindow_p.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\framelesswidget.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\framelesswidget.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\private\framelesswidget_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\private\framelesswidget_p.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\framelesswidgetshelper.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\framelesswidgetshelper.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\private\framelesswidgetshelper_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\private\framelesswidgetshelper_p.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\standardsystembutton.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\standardsystembutton.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\private\standardsystembutton_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\private\standardsystembutton_p.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\standardtitlebar.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\standardtitlebar.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\private\standardtitlebar_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\private\standardtitlebar_p.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\private\widgetssharedhelper_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\private\widgetssharedhelper_p.h">
</QtMoc>
</ItemGroup>
<ItemGroup>
@ -235,8 +235,8 @@
</CustomBuild>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="FramelessHelperCore.vcxproj">
<Project>{f1bc586e-f1ed-320c-899e-76ccb5660ae1}</Project>
<ProjectReference Include="..\FramelessHelperCore\FramelessHelperCore.vcxproj">
<Project>{954d3d24-df86-33a3-8867-d1735ccbdb10}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

View File

@ -27,72 +27,72 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\widgets\framelessdialog.cpp">
<ClCompile Include="..\..\src\widgets\framelessdialog.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\widgets\framelesshelperwidgets_global.cpp">
<ClCompile Include="..\..\src\widgets\framelesshelperwidgets_global.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\widgets\framelessmainwindow.cpp">
<ClCompile Include="..\..\src\widgets\framelessmainwindow.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\widgets\framelesswidget.cpp">
<ClCompile Include="..\..\src\widgets\framelesswidget.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\widgets\framelesswidgetshelper.cpp">
<ClCompile Include="..\..\src\widgets\framelesswidgetshelper.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\widgets\standardsystembutton.cpp">
<ClCompile Include="..\..\src\widgets\standardsystembutton.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\widgets\standardtitlebar.cpp">
<ClCompile Include="..\..\src\widgets\standardtitlebar.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\widgets\widgetssharedhelper.cpp">
<ClCompile Include="..\..\src\widgets\widgetssharedhelper.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<QtMoc Include="..\include\FramelessHelper\Widgets\framelessdialog.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\framelessdialog.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\private\framelessdialog_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\private\framelessdialog_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClInclude Include="..\include\FramelessHelper\Widgets\framelesshelperwidgets_global.h">
<ClInclude Include="..\..\include\FramelessHelper\Widgets\framelesshelperwidgets_global.h">
<Filter>Header Files</Filter>
</ClInclude>
<QtMoc Include="..\include\FramelessHelper\Widgets\framelessmainwindow.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\framelessmainwindow.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\private\framelessmainwindow_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\private\framelessmainwindow_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\framelesswidget.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\framelesswidget.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\private\framelesswidget_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\private\framelesswidget_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\framelesswidgetshelper.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\framelesswidgetshelper.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\private\framelesswidgetshelper_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\private\framelesswidgetshelper_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\standardsystembutton.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\standardsystembutton.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\private\standardsystembutton_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\private\standardsystembutton_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\standardtitlebar.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\standardtitlebar.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\private\standardtitlebar_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\private\standardtitlebar_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Widgets\private\widgetssharedhelper_p.h">
<QtMoc Include="..\..\include\FramelessHelper\Widgets\private\widgetssharedhelper_p.h">
<Filter>Header Files</Filter>
</QtMoc>
</ItemGroup>

View File

@ -1,274 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{E5BE9C30-42FE-3F03-9A8E-F9C7795F516F}</ProjectGuid>
<RootNamespace>
</RootNamespace>
<Keyword>QtVS_v304</Keyword>
<WindowsTargetPlatformVersion>10.0.19041.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.19041.0</WindowsTargetPlatformMinVersion>
<QtMsBuild Condition="'$(QtMsBuild)'=='' or !Exists('$(QtMsBuild)\qt.targets')">$(MSBuildProjectDirectory)\QtMsBuild</QtMsBuild>
<ProjectName>FramelessHelperCore</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<PlatformToolset>v142</PlatformToolset>
<OutputDirectory>release\</OutputDirectory>
<ATLMinimizesCRunTimeLibraryUsage>false</ATLMinimizesCRunTimeLibraryUsage>
<CharacterSet>NotSet</CharacterSet>
<ConfigurationType>Application</ConfigurationType>
<IntermediateDirectory>release\</IntermediateDirectory>
<PrimaryOutput>core</PrimaryOutput>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<PlatformToolset>v143</PlatformToolset>
<OutputDirectory>debug\</OutputDirectory>
<ATLMinimizesCRunTimeLibraryUsage>false</ATLMinimizesCRunTimeLibraryUsage>
<CharacterSet>NotSet</CharacterSet>
<ConfigurationType>StaticLibrary</ConfigurationType>
<IntermediateDirectory>debug\</IntermediateDirectory>
<PrimaryOutput>core</PrimaryOutput>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Target Name="QtMsBuildNotFound" BeforeTargets="CustomBuild;ClCompile" Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')">
<Message Importance="High" Text="QtMsBuild: could not locate qt.targets, qt.props; project may not build correctly." />
</Target>
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
<Import Project="$(QtMsBuild)\qt_defaults.props" />
</ImportGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>debug\</OutDir>
<IntDir>debug\</IntDir>
<TargetName>core</TargetName>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>release\</OutDir>
<IntDir>release\</IntDir>
<TargetName>core</TargetName>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<QtInstall>5.15.2_msvc2019_64</QtInstall>
<QtModules>core;core-private;gui;gui-private</QtModules>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<QtInstall>5.15.2_msvc2019_64</QtInstall>
<QtModules>core;core-private;gui;gui-private</QtModules>
</PropertyGroup>
<ImportGroup Condition="Exists('$(QtMsBuild)\qt.props')">
<Import Project="$(QtMsBuild)\qt.props" />
</ImportGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;..\include\FramelessHelper\Core;..\include\FramelessHelper\Core\private;inc\core;release;E:\VulkanSDK\1.3.216.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)</AdditionalOptions>
<AssemblerListingLocation>release\</AssemblerListingLocation>
<BrowseInformation>false</BrowseInformation>
<DebugInformationFormat>None</DebugInformationFormat>
<DisableSpecificWarnings>4577;4467;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<ExceptionHandling>Sync</ExceptionHandling>
<ObjectFileName>release\</ObjectFileName>
<Optimization>MaxSpeed</Optimization>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;FRAMELESSHELPER_CORE_STATIC;NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<ProgramDataBaseFileName>
</ProgramDataBaseFileName>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<WarningLevel>Level3</WarningLevel>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>user32.lib;gdi32.lib;shell32.lib;shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>C:\openssl\lib;C:\Utils\my_sql\mysql-5.7.25-winx64\lib;C:\Utils\postgresql\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalOptions>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)</AdditionalOptions>
<DataExecutionPrevention>true</DataExecutionPrevention>
<GenerateDebugInformation>false</GenerateDebugInformation>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
<OptimizeReferences>true</OptimizeReferences>
<OutputFile>$(OutDir)\core.exe</OutputFile>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<SubSystem>Windows</SubSystem>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Link>
<Midl>
<DefaultCharType>Unsigned</DefaultCharType>
<EnableErrorChecks>None</EnableErrorChecks>
<WarningLevel>0</WarningLevel>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;FRAMELESSHELPER_CORE_STATIC;NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<QtMoc>
<CompilerFlavor>msvc</CompilerFlavor>
<Include>D:/??2022/ArchitectureColoredPainting/FramelessHelper/qmake/$(Configuration)/moc_predefs.h</Include>
<ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription>
<DynamicSource>output</DynamicSource>
<QtMocDir>$(Configuration)</QtMocDir>
<QtMocFileName>moc_%(Filename).cpp</QtMocFileName>
</QtMoc>
<QtRcc>
<Compression>default</Compression>
<InitFuncName>framelesshelpercore</InitFuncName>
<ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription>
<QtRccDir>$(Configuration)</QtRccDir>
<QtRccFileName>qrc_%(Filename).cpp</QtRccFileName>
</QtRcc>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<AdditionalIncludeDirectories>GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;..\include\FramelessHelper\Core;..\include\FramelessHelper\Core\private;inc\core;debug;E:\VulkanSDK\1.3.216.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)</AdditionalOptions>
<AssemblerListingLocation>debug\</AssemblerListingLocation>
<BrowseInformation>false</BrowseInformation>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4577;4467;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<ExceptionHandling>Sync</ExceptionHandling>
<ObjectFileName>debug\</ObjectFileName>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;FRAMELESSHELPER_CORE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<WarningLevel>Level3</WarningLevel>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<Link>
<AdditionalDependencies>user32.lib;gdi32.lib;shell32.lib;shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>C:\openssl\lib;C:\Utils\my_sql\mysql-5.7.25-winx64\lib;C:\Utils\postgresql\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalOptions>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)</AdditionalOptions>
<DataExecutionPrevention>true</DataExecutionPrevention>
<GenerateDebugInformation>true</GenerateDebugInformation>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<OutputFile>$(OutDir)\core.exe</OutputFile>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<SubSystem>Windows</SubSystem>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Link>
<Midl>
<DefaultCharType>Unsigned</DefaultCharType>
<EnableErrorChecks>None</EnableErrorChecks>
<WarningLevel>0</WarningLevel>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;FRAMELESSHELPER_CORE_STATIC;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<QtRcc>
<InitFuncName>framelesshelpercore</InitFuncName>
<Compression>default</Compression>
<ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription>
<QtRccDir>$(Configuration)</QtRccDir>
<QtRccFileName>qrc_%(Filename).cpp</QtRccFileName>
</QtRcc>
<QtMoc>
<CompilerFlavor>msvc</CompilerFlavor>
<Include>D:/??2022/ArchitectureColoredPainting/FramelessHelper/qmake/$(Configuration)/moc_predefs.h</Include>
<ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription>
<DynamicSource>output</DynamicSource>
<QtMocDir>$(Configuration)</QtMocDir>
<QtMocFileName>moc_%(Filename).cpp</QtMocFileName>
</QtMoc>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\src\core\chromepalette.cpp" />
<ClCompile Include="..\src\core\framelessconfig.cpp" />
<ClCompile Include="..\src\core\framelesshelper_qt.cpp" />
<ClCompile Include="..\src\core\framelesshelper_win.cpp" />
<ClCompile Include="..\src\core\framelesshelpercore_global.cpp" />
<ClCompile Include="..\src\core\framelessmanager.cpp" />
<ClCompile Include="..\src\core\micamaterial.cpp" />
<ClCompile Include="..\src\core\platformsupport_win.cpp" />
<ClCompile Include="..\src\core\registrykey.cpp" />
<ClCompile Include="..\src\core\sysapiloader.cpp" />
<ClCompile Include="..\src\core\utils.cpp" />
<ClCompile Include="..\src\core\utils_win.cpp" />
<ClCompile Include="..\src\core\windowborderpainter.cpp" />
<ClCompile Include="..\src\core\winverhelper.cpp" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="..\include\FramelessHelper\Core\chromepalette.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\chromepalette_p.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\framelessconfig_p.h">
</QtMoc>
<ClInclude Include="inc\core\framelesshelper.version" />
<QtMoc Include="..\include\FramelessHelper\Core\framelesshelper_qt.h">
</QtMoc>
<ClInclude Include="..\include\FramelessHelper\Core\framelesshelper_win.h" />
<ClInclude Include="..\include\FramelessHelper\Core\framelesshelper_windows.h" />
<QtMoc Include="..\include\FramelessHelper\Core\framelesshelpercore_global.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\framelessmanager.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\framelessmanager_p.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\micamaterial.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\micamaterial_p.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\registrykey_p.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\sysapiloader_p.h">
</QtMoc>
<ClInclude Include="..\include\FramelessHelper\Core\utils.h" />
<QtMoc Include="..\include\FramelessHelper\Core\windowborderpainter.h">
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\windowborderpainter_p.h">
</QtMoc>
<ClInclude Include="..\include\FramelessHelper\Core\private\winverhelper_p.h" />
</ItemGroup>
<ItemGroup>
<CustomBuild Include="debug\moc_predefs.h.cbt">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\mkspecs\features\data\dummy.cpp;%(AdditionalInputs)</AdditionalInputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">cl -Bx"$(QTDIR)\bin\qmake.exe" -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -Zi -MDd -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2&gt;NUL &gt;debug\moc_predefs.h</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Generate moc_predefs.h</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">debug\moc_predefs.h;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="release\moc_predefs.h.cbt">
<FileType>Document</FileType>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\mkspecs\features\data\dummy.cpp;%(AdditionalInputs)</AdditionalInputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">cl -Bx"$(QTDIR)\bin\qmake.exe" -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -O2 -MD -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2&gt;NUL &gt;release\moc_predefs.h</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generate moc_predefs.h</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">release\moc_predefs.h;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<QtRcc Include="..\src\core\framelesshelpercore.qrc">
</QtRcc>
<None Include="..\src\core\resources\fonts\iconfont.ttf" />
<None Include="..\src\core\resources\images\noise.png" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')">
<Import Project="$(QtMsBuild)\qt.targets" />
</ImportGroup>
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@ -1,186 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Generated Files">
<UniqueIdentifier>{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}</UniqueIdentifier>
<Extensions>cpp;c;cxx;moc;h;def;odl;idl;res;</Extensions>
</Filter>
<Filter Include="Generated Files">
<UniqueIdentifier>{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}</UniqueIdentifier>
<Extensions>cpp;c;cxx;moc;h;def;odl;idl;res;</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
<Extensions>qrc;*</Extensions>
<ParseFiles>false</ParseFiles>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
<Extensions>qrc;*</Extensions>
<ParseFiles>false</ParseFiles>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\core\chromepalette.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\framelessconfig.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\framelesshelper_qt.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\framelesshelper_win.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\framelesshelpercore_global.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\framelessmanager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\micamaterial.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\platformsupport_win.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\registrykey.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\sysapiloader.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\utils.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\utils_win.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\windowborderpainter.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\core\winverhelper.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<QtMoc Include="..\include\FramelessHelper\Core\chromepalette.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\chromepalette_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\framelessconfig_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClInclude Include="inc\core\framelesshelper.version">
<Filter>Header Files</Filter>
</ClInclude>
<QtMoc Include="..\include\FramelessHelper\Core\framelesshelper_qt.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClInclude Include="..\include\FramelessHelper\Core\framelesshelper_win.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\include\FramelessHelper\Core\framelesshelper_windows.h">
<Filter>Header Files</Filter>
</ClInclude>
<QtMoc Include="..\include\FramelessHelper\Core\framelesshelpercore_global.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\framelessmanager.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\framelessmanager_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\micamaterial.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\micamaterial_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\registrykey_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\sysapiloader_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClInclude Include="..\include\FramelessHelper\Core\utils.h">
<Filter>Header Files</Filter>
</ClInclude>
<QtMoc Include="..\include\FramelessHelper\Core\windowborderpainter.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="..\include\FramelessHelper\Core\private\windowborderpainter_p.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClInclude Include="..\include\FramelessHelper\Core\private\winverhelper_p.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="debug\moc_predefs.h.cbt">
<Filter>Generated Files</Filter>
</CustomBuild>
<CustomBuild Include="release\moc_predefs.h.cbt">
<Filter>Generated Files</Filter>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<QtRcc Include="..\src\core\framelesshelpercore.qrc">
<Filter>Resource Files</Filter>
</QtRcc>
<None Include="..\src\core\resources\fonts\iconfont.ttf">
<Filter>Resource Files</Filter>
</None>
<None Include="..\src\core\resources\images\noise.png">
<Filter>Resource Files</Filter>
</None>
</ItemGroup>
</Project>