[deploy] Merge pull request #50 from KiwanoEngine/dev
Update StrokeStyle
This commit is contained in:
		
						commit
						f2baffab8e
					
				|  | @ -145,7 +145,7 @@ | ||||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||||
|     <OutDir>$(SolutionDir)\output\$(PlatformToolset)\$(Platform)\$(Configuration)\</OutDir> |     <OutDir>$(SolutionDir)\output\$(PlatformToolset)\$(Platform)\$(Configuration)\</OutDir> | ||||||
|     <IntDir>$(SolutionDir)\build\$(PlatformToolset)\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> |     <IntDir>$(SolutionDir)\build\$(PlatformToolset)\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> | ||||||
|     <LinkIncremental>true</LinkIncremental> |     <LinkIncremental>false</LinkIncremental> | ||||||
|   </PropertyGroup> |   </PropertyGroup> | ||||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||||
|     <ClCompile> |     <ClCompile> | ||||||
|  |  | ||||||
|  | @ -62,7 +62,7 @@ | ||||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||||
|     <OutDir>$(SolutionDir)\output\$(PlatformToolset)\$(Platform)\$(Configuration)\</OutDir> |     <OutDir>$(SolutionDir)\output\$(PlatformToolset)\$(Platform)\$(Configuration)\</OutDir> | ||||||
|     <IntDir>$(SolutionDir)\build\$(PlatformToolset)\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> |     <IntDir>$(SolutionDir)\build\$(PlatformToolset)\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> | ||||||
|     <LinkIncremental>true</LinkIncremental> |     <LinkIncremental>false</LinkIncremental> | ||||||
|   </PropertyGroup> |   </PropertyGroup> | ||||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||||
|     <ClCompile> |     <ClCompile> | ||||||
|  |  | ||||||
|  | @ -33,6 +33,7 @@ | ||||||
|     <ClInclude Include="..\..\..\src\3rd-party\curl\typecheck-gcc.h"> |     <ClInclude Include="..\..\..\src\3rd-party\curl\typecheck-gcc.h"> | ||||||
|       <Filter>include</Filter> |       <Filter>include</Filter> | ||||||
|     </ClInclude> |     </ClInclude> | ||||||
|  |     <ClInclude Include="..\..\..\src\3rd-party\curl\curl.h" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <Library Include="..\..\..\src\3rd-party\curl\libs\libcurl.lib"> |     <Library Include="..\..\..\src\3rd-party\curl\libs\libcurl.lib"> | ||||||
|  |  | ||||||
|  | @ -62,7 +62,7 @@ | ||||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||||
|     <OutDir>$(SolutionDir)\output\$(PlatformToolset)\$(Platform)\$(Configuration)\</OutDir> |     <OutDir>$(SolutionDir)\output\$(PlatformToolset)\$(Platform)\$(Configuration)\</OutDir> | ||||||
|     <IntDir>$(SolutionDir)\build\$(PlatformToolset)\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> |     <IntDir>$(SolutionDir)\build\$(PlatformToolset)\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> | ||||||
|     <LinkIncremental>true</LinkIncremental> |     <LinkIncremental>false</LinkIncremental> | ||||||
|   </PropertyGroup> |   </PropertyGroup> | ||||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||||
|     <ClCompile> |     <ClCompile> | ||||||
|  |  | ||||||
|  | @ -23,42 +23,60 @@ EndProject | ||||||
| Global | Global | ||||||
| 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||||
| 		Debug|Win32 = Debug|Win32 | 		Debug|Win32 = Debug|Win32 | ||||||
|  | 		Debug|x64 = Debug|x64 | ||||||
| 		Release|Win32 = Release|Win32 | 		Release|Win32 = Release|Win32 | ||||||
|  | 		Release|x64 = Release|x64 | ||||||
| 	EndGlobalSection | 	EndGlobalSection | ||||||
| 	GlobalSection(ProjectConfigurationPlatforms) = postSolution | 	GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||||||
| 		{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|Win32.ActiveCfg = Debug|Win32 | 		{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|Win32.ActiveCfg = Debug|Win32 | ||||||
| 		{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|Win32.Build.0 = Debug|Win32 | 		{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|Win32.Build.0 = Debug|Win32 | ||||||
| 		{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|Win32.Deploy.0 = Debug|Win32 | 		{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|Win32.Deploy.0 = Debug|Win32 | ||||||
|  | 		{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Debug|x64.ActiveCfg = Debug|Win32 | ||||||
| 		{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Release|Win32.ActiveCfg = Release|Win32 | 		{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Release|Win32.ActiveCfg = Release|Win32 | ||||||
| 		{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Release|Win32.Build.0 = Release|Win32 | 		{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Release|Win32.Build.0 = Release|Win32 | ||||||
|  | 		{FF7F943D-A89C-4E6C-97CF-84F7D8FF8EDF}.Release|x64.ActiveCfg = Release|Win32 | ||||||
| 		{1B97937D-8184-426C-BE71-29A163DC76C9}.Debug|Win32.ActiveCfg = Debug|Win32 | 		{1B97937D-8184-426C-BE71-29A163DC76C9}.Debug|Win32.ActiveCfg = Debug|Win32 | ||||||
| 		{1B97937D-8184-426C-BE71-29A163DC76C9}.Debug|Win32.Build.0 = Debug|Win32 | 		{1B97937D-8184-426C-BE71-29A163DC76C9}.Debug|Win32.Build.0 = Debug|Win32 | ||||||
|  | 		{1B97937D-8184-426C-BE71-29A163DC76C9}.Debug|x64.ActiveCfg = Debug|Win32 | ||||||
| 		{1B97937D-8184-426C-BE71-29A163DC76C9}.Release|Win32.ActiveCfg = Release|Win32 | 		{1B97937D-8184-426C-BE71-29A163DC76C9}.Release|Win32.ActiveCfg = Release|Win32 | ||||||
| 		{1B97937D-8184-426C-BE71-29A163DC76C9}.Release|Win32.Build.0 = Release|Win32 | 		{1B97937D-8184-426C-BE71-29A163DC76C9}.Release|Win32.Build.0 = Release|Win32 | ||||||
|  | 		{1B97937D-8184-426C-BE71-29A163DC76C9}.Release|x64.ActiveCfg = Release|Win32 | ||||||
| 		{69DFBE92-C06F-4CF8-9495-CA9BF2E3BAF2}.Debug|Win32.ActiveCfg = Debug|Win32 | 		{69DFBE92-C06F-4CF8-9495-CA9BF2E3BAF2}.Debug|Win32.ActiveCfg = Debug|Win32 | ||||||
| 		{69DFBE92-C06F-4CF8-9495-CA9BF2E3BAF2}.Debug|Win32.Build.0 = Debug|Win32 | 		{69DFBE92-C06F-4CF8-9495-CA9BF2E3BAF2}.Debug|Win32.Build.0 = Debug|Win32 | ||||||
|  | 		{69DFBE92-C06F-4CF8-9495-CA9BF2E3BAF2}.Debug|x64.ActiveCfg = Debug|Win32 | ||||||
| 		{69DFBE92-C06F-4CF8-9495-CA9BF2E3BAF2}.Release|Win32.ActiveCfg = Release|Win32 | 		{69DFBE92-C06F-4CF8-9495-CA9BF2E3BAF2}.Release|Win32.ActiveCfg = Release|Win32 | ||||||
| 		{69DFBE92-C06F-4CF8-9495-CA9BF2E3BAF2}.Release|Win32.Build.0 = Release|Win32 | 		{69DFBE92-C06F-4CF8-9495-CA9BF2E3BAF2}.Release|Win32.Build.0 = Release|Win32 | ||||||
|  | 		{69DFBE92-C06F-4CF8-9495-CA9BF2E3BAF2}.Release|x64.ActiveCfg = Release|Win32 | ||||||
| 		{A7062ED8-8910-48A5-A3BC-C1612672571F}.Debug|Win32.ActiveCfg = Debug|Win32 | 		{A7062ED8-8910-48A5-A3BC-C1612672571F}.Debug|Win32.ActiveCfg = Debug|Win32 | ||||||
| 		{A7062ED8-8910-48A5-A3BC-C1612672571F}.Debug|Win32.Build.0 = Debug|Win32 | 		{A7062ED8-8910-48A5-A3BC-C1612672571F}.Debug|Win32.Build.0 = Debug|Win32 | ||||||
|  | 		{A7062ED8-8910-48A5-A3BC-C1612672571F}.Debug|x64.ActiveCfg = Debug|Win32 | ||||||
| 		{A7062ED8-8910-48A5-A3BC-C1612672571F}.Release|Win32.ActiveCfg = Release|Win32 | 		{A7062ED8-8910-48A5-A3BC-C1612672571F}.Release|Win32.ActiveCfg = Release|Win32 | ||||||
| 		{A7062ED8-8910-48A5-A3BC-C1612672571F}.Release|Win32.Build.0 = Release|Win32 | 		{A7062ED8-8910-48A5-A3BC-C1612672571F}.Release|Win32.Build.0 = Release|Win32 | ||||||
|  | 		{A7062ED8-8910-48A5-A3BC-C1612672571F}.Release|x64.ActiveCfg = Release|Win32 | ||||||
| 		{DF599AFB-744F-41E5-AF0C-2146F90575C8}.Debug|Win32.ActiveCfg = Debug|Win32 | 		{DF599AFB-744F-41E5-AF0C-2146F90575C8}.Debug|Win32.ActiveCfg = Debug|Win32 | ||||||
| 		{DF599AFB-744F-41E5-AF0C-2146F90575C8}.Debug|Win32.Build.0 = Debug|Win32 | 		{DF599AFB-744F-41E5-AF0C-2146F90575C8}.Debug|Win32.Build.0 = Debug|Win32 | ||||||
|  | 		{DF599AFB-744F-41E5-AF0C-2146F90575C8}.Debug|x64.ActiveCfg = Debug|Win32 | ||||||
| 		{DF599AFB-744F-41E5-AF0C-2146F90575C8}.Release|Win32.ActiveCfg = Release|Win32 | 		{DF599AFB-744F-41E5-AF0C-2146F90575C8}.Release|Win32.ActiveCfg = Release|Win32 | ||||||
| 		{DF599AFB-744F-41E5-AF0C-2146F90575C8}.Release|Win32.Build.0 = Release|Win32 | 		{DF599AFB-744F-41E5-AF0C-2146F90575C8}.Release|Win32.Build.0 = Release|Win32 | ||||||
|  | 		{DF599AFB-744F-41E5-AF0C-2146F90575C8}.Release|x64.ActiveCfg = Release|Win32 | ||||||
| 		{7FA1E56D-62AC-47D1-97D1-40B302724198}.Debug|Win32.ActiveCfg = Debug|Win32 | 		{7FA1E56D-62AC-47D1-97D1-40B302724198}.Debug|Win32.ActiveCfg = Debug|Win32 | ||||||
| 		{7FA1E56D-62AC-47D1-97D1-40B302724198}.Debug|Win32.Build.0 = Debug|Win32 | 		{7FA1E56D-62AC-47D1-97D1-40B302724198}.Debug|Win32.Build.0 = Debug|Win32 | ||||||
|  | 		{7FA1E56D-62AC-47D1-97D1-40B302724198}.Debug|x64.ActiveCfg = Debug|Win32 | ||||||
| 		{7FA1E56D-62AC-47D1-97D1-40B302724198}.Release|Win32.ActiveCfg = Release|Win32 | 		{7FA1E56D-62AC-47D1-97D1-40B302724198}.Release|Win32.ActiveCfg = Release|Win32 | ||||||
| 		{7FA1E56D-62AC-47D1-97D1-40B302724198}.Release|Win32.Build.0 = Release|Win32 | 		{7FA1E56D-62AC-47D1-97D1-40B302724198}.Release|Win32.Build.0 = Release|Win32 | ||||||
|  | 		{7FA1E56D-62AC-47D1-97D1-40B302724198}.Release|x64.ActiveCfg = Release|Win32 | ||||||
| 		{A9ABACC7-75A1-46BA-8E48-4105346D9719}.Debug|Win32.ActiveCfg = Debug|Win32 | 		{A9ABACC7-75A1-46BA-8E48-4105346D9719}.Debug|Win32.ActiveCfg = Debug|Win32 | ||||||
| 		{A9ABACC7-75A1-46BA-8E48-4105346D9719}.Debug|Win32.Build.0 = Debug|Win32 | 		{A9ABACC7-75A1-46BA-8E48-4105346D9719}.Debug|Win32.Build.0 = Debug|Win32 | ||||||
|  | 		{A9ABACC7-75A1-46BA-8E48-4105346D9719}.Debug|x64.ActiveCfg = Debug|Win32 | ||||||
| 		{A9ABACC7-75A1-46BA-8E48-4105346D9719}.Release|Win32.ActiveCfg = Release|Win32 | 		{A9ABACC7-75A1-46BA-8E48-4105346D9719}.Release|Win32.ActiveCfg = Release|Win32 | ||||||
| 		{A9ABACC7-75A1-46BA-8E48-4105346D9719}.Release|Win32.Build.0 = Release|Win32 | 		{A9ABACC7-75A1-46BA-8E48-4105346D9719}.Release|Win32.Build.0 = Release|Win32 | ||||||
|  | 		{A9ABACC7-75A1-46BA-8E48-4105346D9719}.Release|x64.ActiveCfg = Release|Win32 | ||||||
| 		{0CBA9295-F14D-4966-A7C4-1DD68158176C}.Debug|Win32.ActiveCfg = Debug|Win32 | 		{0CBA9295-F14D-4966-A7C4-1DD68158176C}.Debug|Win32.ActiveCfg = Debug|Win32 | ||||||
| 		{0CBA9295-F14D-4966-A7C4-1DD68158176C}.Debug|Win32.Build.0 = Debug|Win32 | 		{0CBA9295-F14D-4966-A7C4-1DD68158176C}.Debug|Win32.Build.0 = Debug|Win32 | ||||||
|  | 		{0CBA9295-F14D-4966-A7C4-1DD68158176C}.Debug|x64.ActiveCfg = Debug|Win32 | ||||||
| 		{0CBA9295-F14D-4966-A7C4-1DD68158176C}.Release|Win32.ActiveCfg = Release|Win32 | 		{0CBA9295-F14D-4966-A7C4-1DD68158176C}.Release|Win32.ActiveCfg = Release|Win32 | ||||||
| 		{0CBA9295-F14D-4966-A7C4-1DD68158176C}.Release|Win32.Build.0 = Release|Win32 | 		{0CBA9295-F14D-4966-A7C4-1DD68158176C}.Release|Win32.Build.0 = Release|Win32 | ||||||
|  | 		{0CBA9295-F14D-4966-A7C4-1DD68158176C}.Release|x64.ActiveCfg = Release|Win32 | ||||||
| 	EndGlobalSection | 	EndGlobalSection | ||||||
| 	GlobalSection(SolutionProperties) = preSolution | 	GlobalSection(SolutionProperties) = preSolution | ||||||
| 		HideSolutionNode = FALSE | 		HideSolutionNode = FALSE | ||||||
|  |  | ||||||
|  | @ -63,7 +63,7 @@ | ||||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||||
|     <OutDir>$(SolutionDir)\output\$(PlatformToolset)\$(Platform)\$(Configuration)\</OutDir> |     <OutDir>$(SolutionDir)\output\$(PlatformToolset)\$(Platform)\$(Configuration)\</OutDir> | ||||||
|     <IntDir>$(SolutionDir)\build\$(PlatformToolset)\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> |     <IntDir>$(SolutionDir)\build\$(PlatformToolset)\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> | ||||||
|     <LinkIncremental>true</LinkIncremental> |     <LinkIncremental>false</LinkIncremental> | ||||||
|   </PropertyGroup> |   </PropertyGroup> | ||||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||||
|     <ClCompile> |     <ClCompile> | ||||||
|  |  | ||||||
|  | @ -62,7 +62,7 @@ | ||||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||||
|     <OutDir>$(SolutionDir)\output\$(PlatformToolset)\$(Platform)\$(Configuration)\</OutDir> |     <OutDir>$(SolutionDir)\output\$(PlatformToolset)\$(Platform)\$(Configuration)\</OutDir> | ||||||
|     <IntDir>$(SolutionDir)\build\$(PlatformToolset)\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> |     <IntDir>$(SolutionDir)\build\$(PlatformToolset)\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> | ||||||
|     <LinkIncremental>true</LinkIncremental> |     <LinkIncremental>false</LinkIncremental> | ||||||
|   </PropertyGroup> |   </PropertyGroup> | ||||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||||
|     <ClCompile> |     <ClCompile> | ||||||
|  |  | ||||||
|  | @ -58,7 +58,7 @@ | ||||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||||
|     <OutDir>$(SolutionDir)\output\$(PlatformToolset)\$(Platform)\$(Configuration)\</OutDir> |     <OutDir>$(SolutionDir)\output\$(PlatformToolset)\$(Platform)\$(Configuration)\</OutDir> | ||||||
|     <IntDir>$(SolutionDir)\build\$(PlatformToolset)\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> |     <IntDir>$(SolutionDir)\build\$(PlatformToolset)\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> | ||||||
|     <LinkIncremental>true</LinkIncremental> |     <LinkIncremental>false</LinkIncremental> | ||||||
|   </PropertyGroup> |   </PropertyGroup> | ||||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||||
|     <ClCompile> |     <ClCompile> | ||||||
|  |  | ||||||
|  | @ -68,7 +68,7 @@ | ||||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||||
|     <OutDir>$(SolutionDir)\output\$(PlatformToolset)\$(Platform)\$(Configuration)\</OutDir> |     <OutDir>$(SolutionDir)\output\$(PlatformToolset)\$(Platform)\$(Configuration)\</OutDir> | ||||||
|     <IntDir>$(SolutionDir)\build\$(PlatformToolset)\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> |     <IntDir>$(SolutionDir)\build\$(PlatformToolset)\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> | ||||||
|     <LinkIncremental>true</LinkIncremental> |     <LinkIncremental>false</LinkIncremental> | ||||||
|   </PropertyGroup> |   </PropertyGroup> | ||||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||||
|     <ClCompile> |     <ClCompile> | ||||||
|  |  | ||||||
|  | @ -212,7 +212,7 @@ | ||||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||||
|     <OutDir>$(SolutionDir)\output\$(PlatformToolset)\$(Platform)\$(Configuration)\</OutDir> |     <OutDir>$(SolutionDir)\output\$(PlatformToolset)\$(Platform)\$(Configuration)\</OutDir> | ||||||
|     <IntDir>$(SolutionDir)\build\$(PlatformToolset)\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> |     <IntDir>$(SolutionDir)\build\$(PlatformToolset)\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> | ||||||
|     <LinkIncremental>true</LinkIncremental> |     <LinkIncremental>false</LinkIncremental> | ||||||
|   </PropertyGroup> |   </PropertyGroup> | ||||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||||
|     <ClCompile> |     <ClCompile> | ||||||
|  |  | ||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							|  | @ -38,27 +38,12 @@ LayerActor::LayerActor() | ||||||
| 
 | 
 | ||||||
| LayerActor::~LayerActor() {} | LayerActor::~LayerActor() {} | ||||||
| 
 | 
 | ||||||
| void LayerActor::SetClipRect(Rect const& clip_rect) |  | ||||||
| { |  | ||||||
|     layer_.SetClipRect(clip_rect); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void LayerActor::SetOpacity(float opacity) | void LayerActor::SetOpacity(float opacity) | ||||||
| { | { | ||||||
|     // Actor::SetOpacity(opacity);
 |     // Actor::SetOpacity(opacity);
 | ||||||
|     layer_.SetOpacity(opacity); |     layer_.SetOpacity(opacity); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void LayerActor::SetMaskShape(ShapePtr mask) |  | ||||||
| { |  | ||||||
|     layer_.SetMaskShape(mask); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void LayerActor::SetMaskTransform(Matrix3x2 const& transform) |  | ||||||
| { |  | ||||||
|     layer_.SetMaskTransform(transform); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| bool LayerActor::DispatchEvent(Event* evt) | bool LayerActor::DispatchEvent(Event* evt) | ||||||
| { | { | ||||||
|     if (!IsVisible()) |     if (!IsVisible()) | ||||||
|  |  | ||||||
|  | @ -34,7 +34,7 @@ KGE_DECLARE_SMART_PTR(LayerActor); | ||||||
| 
 | 
 | ||||||
| /**
 | /**
 | ||||||
|  * \~chinese |  * \~chinese | ||||||
|  * @brief 图层 |  * @brief 图层角色 | ||||||
|  */ |  */ | ||||||
| class KGE_API LayerActor : public Actor | class KGE_API LayerActor : public Actor | ||||||
| { | { | ||||||
|  | @ -51,40 +51,29 @@ public: | ||||||
|     /// @brief 是否开启消息吞没
 |     /// @brief 是否开启消息吞没
 | ||||||
|     bool IsSwallowEventsEnabled() const; |     bool IsSwallowEventsEnabled() const; | ||||||
| 
 | 
 | ||||||
|  |     /// \~chinese
 | ||||||
|  |     /// @brief 获取图层区域
 | ||||||
|  |     Layer const& GetLayer() const; | ||||||
|  | 
 | ||||||
|  |     /// \~chinese
 | ||||||
|  |     /// @brief 获取图层区域
 | ||||||
|  |     Layer& GetLayer(); | ||||||
|  | 
 | ||||||
|  |     /// \~chinese
 | ||||||
|  |     /// @brief 设置图层
 | ||||||
|  |     /// @param layer 图层
 | ||||||
|  |     void SetLayer(Layer const& layer); | ||||||
|  | 
 | ||||||
|     /// \~chinese
 |     /// \~chinese
 | ||||||
|     /// @brief 设置消息吞没功能
 |     /// @brief 设置消息吞没功能
 | ||||||
|     /// @param enabled 是否启用
 |     /// @param enabled 是否启用
 | ||||||
|     void SetSwallowEvents(bool enabled); |     void SetSwallowEvents(bool enabled); | ||||||
| 
 | 
 | ||||||
|     /// \~chinese
 |  | ||||||
|     /// @brief 设置裁剪区域
 |  | ||||||
|     /// @param clip_rect 裁剪矩形
 |  | ||||||
|     void SetClipRect(Rect const& clip_rect); |  | ||||||
| 
 |  | ||||||
|     /// \~chinese
 |     /// \~chinese
 | ||||||
|     /// @brief 设置图层透明度
 |     /// @brief 设置图层透明度
 | ||||||
|     /// @param opacity 透明度
 |     /// @param opacity 透明度
 | ||||||
|     void SetOpacity(float opacity) override; |     void SetOpacity(float opacity) override; | ||||||
| 
 | 
 | ||||||
|     /// \~chinese
 |  | ||||||
|     /// @brief 设置几何蒙层
 |  | ||||||
|     /// @param mask 蒙层的形状
 |  | ||||||
|     void SetMaskShape(ShapePtr mask); |  | ||||||
| 
 |  | ||||||
|     /// \~chinese
 |  | ||||||
|     /// @brief 设置几何蒙层的二维变换
 |  | ||||||
|     /// @param transform 应用于蒙层的二维变换
 |  | ||||||
|     void SetMaskTransform(Matrix3x2 const& transform); |  | ||||||
| 
 |  | ||||||
|     /// \~chinese
 |  | ||||||
|     /// @brief 设置图层区域
 |  | ||||||
|     /// @param area 图层区域属性
 |  | ||||||
|     void SetLayer(Layer const& layer); |  | ||||||
| 
 |  | ||||||
|     /// \~chinese
 |  | ||||||
|     /// @brief 获取图层区域
 |  | ||||||
|     Layer const& GetLayer() const; |  | ||||||
| 
 |  | ||||||
|     bool DispatchEvent(Event* evt) override; |     bool DispatchEvent(Event* evt) override; | ||||||
| 
 | 
 | ||||||
| protected: | protected: | ||||||
|  | @ -118,4 +107,10 @@ inline Layer const& LayerActor::GetLayer() const | ||||||
| { | { | ||||||
|     return layer_; |     return layer_; | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | inline Layer& LayerActor::GetLayer() | ||||||
|  | { | ||||||
|  |     return layer_; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| }  // namespace kiwano
 | }  // namespace kiwano
 | ||||||
|  |  | ||||||
|  | @ -59,16 +59,6 @@ bool ShapeActor::ContainsPoint(const Point& point) const | ||||||
|     return shape_->ContainsPoint(point, &GetTransformMatrix()); |     return shape_->ContainsPoint(point, &GetTransformMatrix()); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void ShapeActor::SetStrokeWidth(float width) |  | ||||||
| { |  | ||||||
|     stroke_width_ = std::max(width, 0.f); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void ShapeActor::SetStrokeStyle(StrokeStylePtr stroke_style) |  | ||||||
| { |  | ||||||
|     stroke_style_ = stroke_style; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void ShapeActor::SetShape(ShapePtr shape) | void ShapeActor::SetShape(ShapePtr shape) | ||||||
| { | { | ||||||
|     shape_ = shape; |     shape_ = shape; | ||||||
|  |  | ||||||
|  | @ -350,43 +350,62 @@ inline void ShapeActor::SetFillBrush(BrushPtr brush) | ||||||
| { | { | ||||||
|     fill_brush_ = brush; |     fill_brush_ = brush; | ||||||
| } | } | ||||||
|  | 
 | ||||||
| inline void ShapeActor::SetStrokeBrush(BrushPtr brush) | inline void ShapeActor::SetStrokeBrush(BrushPtr brush) | ||||||
| { | { | ||||||
|     stroke_brush_ = brush; |     stroke_brush_ = brush; | ||||||
| } | } | ||||||
|  | 
 | ||||||
| inline BrushPtr ShapeActor::GetFillBrush() const | inline BrushPtr ShapeActor::GetFillBrush() const | ||||||
| { | { | ||||||
|     return fill_brush_; |     return fill_brush_; | ||||||
| } | } | ||||||
|  | 
 | ||||||
| inline BrushPtr ShapeActor::GetStrokeBrush() const | inline BrushPtr ShapeActor::GetStrokeBrush() const | ||||||
| { | { | ||||||
|     return stroke_brush_; |     return stroke_brush_; | ||||||
| } | } | ||||||
|  | 
 | ||||||
| inline float ShapeActor::GetStrokeWidth() const | inline float ShapeActor::GetStrokeWidth() const | ||||||
| { | { | ||||||
|     return stroke_width_; |     return stroke_width_; | ||||||
| } | } | ||||||
|  | 
 | ||||||
| inline StrokeStylePtr ShapeActor::GetStrokeStyle() const | inline StrokeStylePtr ShapeActor::GetStrokeStyle() const | ||||||
| { | { | ||||||
|     return stroke_style_; |     return stroke_style_; | ||||||
| } | } | ||||||
|  | 
 | ||||||
| inline ShapePtr ShapeActor::GetShape() const | inline ShapePtr ShapeActor::GetShape() const | ||||||
| { | { | ||||||
|     return shape_; |     return shape_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | inline void ShapeActor::SetStrokeWidth(float width) | ||||||
|  | { | ||||||
|  |     stroke_width_ = std::max(width, 0.f); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | inline void ShapeActor::SetStrokeStyle(StrokeStylePtr stroke_style) | ||||||
|  | { | ||||||
|  |     stroke_style_ = stroke_style; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| inline Point const& LineActor::GetBeginPoint() const | inline Point const& LineActor::GetBeginPoint() const | ||||||
| { | { | ||||||
|     return begin_; |     return begin_; | ||||||
| } | } | ||||||
|  | 
 | ||||||
| inline Point const& LineActor::GetEndPoint() const | inline Point const& LineActor::GetEndPoint() const | ||||||
| { | { | ||||||
|     return end_; |     return end_; | ||||||
| } | } | ||||||
|  | 
 | ||||||
| inline void LineActor::SetBeginPoint(Point const& begin) | inline void LineActor::SetBeginPoint(Point const& begin) | ||||||
| { | { | ||||||
|     SetLine(begin, end_); |     SetLine(begin, end_); | ||||||
| } | } | ||||||
|  | 
 | ||||||
| inline void LineActor::SetEndPoint(Point const& end) | inline void LineActor::SetEndPoint(Point const& end) | ||||||
| { | { | ||||||
|     SetLine(begin_, end); |     SetLine(begin_, end); | ||||||
|  | @ -401,6 +420,7 @@ inline Vec2 RoundedRectActor::GetRadius() const | ||||||
| { | { | ||||||
|     return radius_; |     return radius_; | ||||||
| } | } | ||||||
|  | 
 | ||||||
| inline Size RoundedRectActor::GetRectSize() const | inline Size RoundedRectActor::GetRectSize() const | ||||||
| { | { | ||||||
|     return GetSize(); |     return GetSize(); | ||||||
|  | @ -415,4 +435,5 @@ inline Vec2 EllipseActor::GetRadius() const | ||||||
| { | { | ||||||
|     return radius_; |     return radius_; | ||||||
| } | } | ||||||
|  | 
 | ||||||
| }  // namespace kiwano
 | }  // namespace kiwano
 | ||||||
|  |  | ||||||
|  | @ -66,6 +66,10 @@ public: | ||||||
|     /// @brief 获取文本布局
 |     /// @brief 获取文本布局
 | ||||||
|     const TextLayout& GetLayout() const; |     const TextLayout& GetLayout() const; | ||||||
| 
 | 
 | ||||||
|  |     /// \~chinese
 | ||||||
|  |     /// @brief 获取文本布局
 | ||||||
|  |     TextLayout& GetLayout(); | ||||||
|  | 
 | ||||||
|     /// \~chinese
 |     /// \~chinese
 | ||||||
|     /// @brief 获取文本布局大小
 |     /// @brief 获取文本布局大小
 | ||||||
|     Size GetLayoutSize() const; |     Size GetLayoutSize() const; | ||||||
|  | @ -194,6 +198,11 @@ inline const TextLayout& TextActor::GetLayout() const | ||||||
|     return text_layout_; |     return text_layout_; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | inline TextLayout& TextActor::GetLayout() | ||||||
|  | { | ||||||
|  |     return text_layout_; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| inline Size TextActor::GetLayoutSize() const | inline Size TextActor::GetLayoutSize() const | ||||||
| { | { | ||||||
|     return text_layout_.GetLayoutSize(); |     return text_layout_.GetLayoutSize(); | ||||||
|  |  | ||||||
|  | @ -133,18 +133,10 @@ void RenderContextImpl::DrawTextLayout(TextLayout const& layout, Point const& of | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         HRESULT hr = S_OK; |         HRESULT hr = S_OK; | ||||||
|  |         ID2D1StrokeStyle* stroke_style = style.outline_stroke ? style.outline_stroke->GetStrokeStyle().get() : nullptr; | ||||||
| 
 | 
 | ||||||
|         if (style.outline_stroke) |         hr = text_renderer_->DrawTextLayout(layout.GetTextLayout().get(), offset.x, offset.y, fill_brush.get(), | ||||||
|         { |                                             outline_brush.get(), style.outline_width, stroke_style); | ||||||
|             hr = text_renderer_->DrawTextLayout(layout.GetTextLayout().get(), offset.x, offset.y, fill_brush.get(), |  | ||||||
|                                                 outline_brush.get(), style.outline_width, |  | ||||||
|                                                 style.outline_stroke->GetStrokeStyle().get()); |  | ||||||
|         } |  | ||||||
|         else |  | ||||||
|         { |  | ||||||
|             hr = text_renderer_->DrawTextLayout(layout.GetTextLayout().get(), offset.x, offset.y, fill_brush.get(), |  | ||||||
|                                                 outline_brush.get(), style.outline_width, nullptr); |  | ||||||
|         } |  | ||||||
| 
 | 
 | ||||||
|         if (SUCCEEDED(hr)) |         if (SUCCEEDED(hr)) | ||||||
|         { |         { | ||||||
|  | @ -164,16 +156,9 @@ void RenderContextImpl::DrawShape(Shape const& shape, StrokeStylePtr stroke, flo | ||||||
| 
 | 
 | ||||||
|     if (shape.IsValid()) |     if (shape.IsValid()) | ||||||
|     { |     { | ||||||
|         if (stroke) |         ID2D1StrokeStyle* stroke_style = stroke ? stroke->GetStrokeStyle().get() : nullptr; | ||||||
|         { |         render_target_->DrawGeometry(shape.GetGeometry().get(), current_brush_->GetBrush().get(), stroke_width, | ||||||
|             render_target_->DrawGeometry(shape.GetGeometry().get(), current_brush_->GetBrush().get(), stroke_width, |                                      stroke_style); | ||||||
|                                          stroke->GetStrokeStyle().get()); |  | ||||||
|         } |  | ||||||
|         else |  | ||||||
|         { |  | ||||||
|             render_target_->DrawGeometry(shape.GetGeometry().get(), current_brush_->GetBrush().get(), stroke_width, |  | ||||||
|                                          nullptr); |  | ||||||
|         } |  | ||||||
| 
 | 
 | ||||||
|         IncreasePrimitivesCount(); |         IncreasePrimitivesCount(); | ||||||
|     } |     } | ||||||
|  | @ -184,16 +169,9 @@ void RenderContextImpl::DrawLine(Point const& point1, Point const& point2, Strok | ||||||
|     KGE_ASSERT(render_target_ && "Render target has not been initialized!"); |     KGE_ASSERT(render_target_ && "Render target has not been initialized!"); | ||||||
|     KGE_ASSERT(current_brush_ && "The brush used for rendering has not been set!"); |     KGE_ASSERT(current_brush_ && "The brush used for rendering has not been set!"); | ||||||
| 
 | 
 | ||||||
|     if (stroke) |     ID2D1StrokeStyle* stroke_style = stroke ? stroke->GetStrokeStyle().get() : nullptr; | ||||||
|     { |     render_target_->DrawLine(DX::ConvertToPoint2F(point1), DX::ConvertToPoint2F(point2), | ||||||
|         render_target_->DrawLine(DX::ConvertToPoint2F(point1), DX::ConvertToPoint2F(point2), |                              current_brush_->GetBrush().get(), stroke_width, stroke_style); | ||||||
|                                  current_brush_->GetBrush().get(), stroke_width, stroke->GetStrokeStyle().get()); |  | ||||||
|     } |  | ||||||
|     else |  | ||||||
|     { |  | ||||||
|         render_target_->DrawLine(DX::ConvertToPoint2F(point1), DX::ConvertToPoint2F(point2), |  | ||||||
|                                  current_brush_->GetBrush().get(), stroke_width, nullptr); |  | ||||||
|     } |  | ||||||
| 
 | 
 | ||||||
|     IncreasePrimitivesCount(); |     IncreasePrimitivesCount(); | ||||||
| } | } | ||||||
|  | @ -203,16 +181,9 @@ void RenderContextImpl::DrawRectangle(Rect const& rect, StrokeStylePtr stroke, f | ||||||
|     KGE_ASSERT(render_target_ && "Render target has not been initialized!"); |     KGE_ASSERT(render_target_ && "Render target has not been initialized!"); | ||||||
|     KGE_ASSERT(current_brush_ && "The brush used for rendering has not been set!"); |     KGE_ASSERT(current_brush_ && "The brush used for rendering has not been set!"); | ||||||
| 
 | 
 | ||||||
|     if (stroke) |     ID2D1StrokeStyle* stroke_style = stroke ? stroke->GetStrokeStyle().get() : nullptr; | ||||||
|     { |     render_target_->DrawRectangle(DX::ConvertToRectF(rect), current_brush_->GetBrush().get(), stroke_width, | ||||||
|         render_target_->DrawRectangle(DX::ConvertToRectF(rect), current_brush_->GetBrush().get(), stroke_width, |                                   stroke_style); | ||||||
|                                       stroke->GetStrokeStyle().get()); |  | ||||||
|     } |  | ||||||
|     else |  | ||||||
|     { |  | ||||||
|         render_target_->DrawRectangle(DX::ConvertToRectF(rect), current_brush_->GetBrush().get(), stroke_width, |  | ||||||
|                                       nullptr); |  | ||||||
|     } |  | ||||||
| 
 | 
 | ||||||
|     IncreasePrimitivesCount(); |     IncreasePrimitivesCount(); | ||||||
| } | } | ||||||
|  | @ -223,17 +194,10 @@ void RenderContextImpl::DrawRoundedRectangle(Rect const& rect, Vec2 const& radiu | ||||||
|     KGE_ASSERT(render_target_ && "Render target has not been initialized!"); |     KGE_ASSERT(render_target_ && "Render target has not been initialized!"); | ||||||
|     KGE_ASSERT(current_brush_ && "The brush used for rendering has not been set!"); |     KGE_ASSERT(current_brush_ && "The brush used for rendering has not been set!"); | ||||||
| 
 | 
 | ||||||
|     if (stroke) |     ID2D1StrokeStyle* stroke_style = stroke ? stroke->GetStrokeStyle().get() : nullptr; | ||||||
|     { |     render_target_->DrawRoundedRectangle(D2D1::RoundedRect(DX::ConvertToRectF(rect), radius.x, radius.y), | ||||||
|         render_target_->DrawRoundedRectangle(D2D1::RoundedRect(DX::ConvertToRectF(rect), radius.x, radius.y), |                                          current_brush_->GetBrush().get(), stroke_width, stroke_style); | ||||||
|                                              current_brush_->GetBrush().get(), stroke_width, | 
 | ||||||
|                                              stroke->GetStrokeStyle().get()); |  | ||||||
|     } |  | ||||||
|     else |  | ||||||
|     { |  | ||||||
|         render_target_->DrawRoundedRectangle(D2D1::RoundedRect(DX::ConvertToRectF(rect), radius.x, radius.y), |  | ||||||
|                                              current_brush_->GetBrush().get(), stroke_width, nullptr); |  | ||||||
|     } |  | ||||||
|     IncreasePrimitivesCount(); |     IncreasePrimitivesCount(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -242,16 +206,9 @@ void RenderContextImpl::DrawEllipse(Point const& center, Vec2 const& radius, Str | ||||||
|     KGE_ASSERT(render_target_ && "Render target has not been initialized!"); |     KGE_ASSERT(render_target_ && "Render target has not been initialized!"); | ||||||
|     KGE_ASSERT(current_brush_ && "The brush used for rendering has not been set!"); |     KGE_ASSERT(current_brush_ && "The brush used for rendering has not been set!"); | ||||||
| 
 | 
 | ||||||
|     if (stroke) |     ID2D1StrokeStyle* stroke_style = stroke ? stroke->GetStrokeStyle().get() : nullptr; | ||||||
|     { |     render_target_->DrawEllipse(D2D1::Ellipse(DX::ConvertToPoint2F(center), radius.x, radius.y), | ||||||
|         render_target_->DrawEllipse(D2D1::Ellipse(DX::ConvertToPoint2F(center), radius.x, radius.y), |                                 current_brush_->GetBrush().get(), stroke_width, stroke_style); | ||||||
|                                     current_brush_->GetBrush().get(), stroke_width, stroke->GetStrokeStyle().get()); |  | ||||||
|     } |  | ||||||
|     else |  | ||||||
|     { |  | ||||||
|         render_target_->DrawEllipse(D2D1::Ellipse(DX::ConvertToPoint2F(center), radius.x, radius.y), |  | ||||||
|                                     current_brush_->GetBrush().get(), stroke_width, nullptr); |  | ||||||
|     } |  | ||||||
| 
 | 
 | ||||||
|     IncreasePrimitivesCount(); |     IncreasePrimitivesCount(); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -39,22 +39,19 @@ public: | ||||||
| 
 | 
 | ||||||
|     void EndDraw() override; |     void EndDraw() override; | ||||||
| 
 | 
 | ||||||
|     void DrawTexture(Texture const& texture, const Rect* src_rect = nullptr, const Rect* dest_rect = nullptr) override; |     void DrawTexture(Texture const& texture, const Rect* src_rect, const Rect* dest_rect) override; | ||||||
| 
 | 
 | ||||||
|     void DrawTextLayout(TextLayout const& layout, Point const& offset = Point()) override; |     void DrawTextLayout(TextLayout const& layout, Point const& offset) override; | ||||||
| 
 | 
 | ||||||
|     void DrawShape(Shape const& shape, StrokeStylePtr stroke = nullptr, float stroke_width = 1.0f) override; |     void DrawShape(Shape const& shape, StrokeStylePtr stroke, float stroke_width) override; | ||||||
| 
 | 
 | ||||||
|     void DrawLine(Point const& point1, Point const& point2, StrokeStylePtr stroke = nullptr, |     void DrawLine(Point const& point1, Point const& point2, StrokeStylePtr stroke, float stroke_width) override; | ||||||
|                   float stroke_width = 1.0f) override; |  | ||||||
| 
 | 
 | ||||||
|     void DrawRectangle(Rect const& rect, StrokeStylePtr stroke = nullptr, float stroke_width = 1.0f) override; |     void DrawRectangle(Rect const& rect, StrokeStylePtr stroke, float stroke_width) override; | ||||||
| 
 | 
 | ||||||
|     void DrawRoundedRectangle(Rect const& rect, Vec2 const& radius, StrokeStylePtr stroke = nullptr, |     void DrawRoundedRectangle(Rect const& rect, Vec2 const& radius, StrokeStylePtr stroke, float stroke_width) override; | ||||||
|                               float stroke_width = 1.0f) override; |  | ||||||
| 
 | 
 | ||||||
|     void DrawEllipse(Point const& center, Vec2 const& radius, StrokeStylePtr stroke = nullptr, |     void DrawEllipse(Point const& center, Vec2 const& radius, StrokeStylePtr stroke, float stroke_width) override; | ||||||
|                      float stroke_width = 1.0f) override; |  | ||||||
| 
 | 
 | ||||||
|     void FillShape(Shape const& shape) override; |     void FillShape(Shape const& shape) override; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -31,7 +31,7 @@ namespace kiwano | ||||||
| 
 | 
 | ||||||
| /**
 | /**
 | ||||||
|  * \~chinese |  * \~chinese | ||||||
|  * @brief 图层区域 |  * @brief 图层 | ||||||
|  */ |  */ | ||||||
| class KGE_API Layer | class KGE_API Layer | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -89,7 +89,7 @@ public: | ||||||
|     /// @param shape 形状
 |     /// @param shape 形状
 | ||||||
|     /// @param stroke 线条样式
 |     /// @param stroke 线条样式
 | ||||||
|     /// @param stroke_width 线条宽度
 |     /// @param stroke_width 线条宽度
 | ||||||
|     virtual void DrawShape(Shape const& shape, StrokeStylePtr stroke = nullptr, float stroke_width = 1.0f) = 0; |     virtual void DrawShape(Shape const& shape, StrokeStylePtr stroke, float stroke_width) = 0; | ||||||
| 
 | 
 | ||||||
|     /// \~chinese
 |     /// \~chinese
 | ||||||
|     /// @brief 绘制线段
 |     /// @brief 绘制线段
 | ||||||
|  | @ -97,15 +97,14 @@ public: | ||||||
|     /// @param point2 线段终点
 |     /// @param point2 线段终点
 | ||||||
|     /// @param stroke 线条样式
 |     /// @param stroke 线条样式
 | ||||||
|     /// @param stroke_width 线条宽度
 |     /// @param stroke_width 线条宽度
 | ||||||
|     virtual void DrawLine(Point const& point1, Point const& point2, StrokeStylePtr stroke = nullptr, |     virtual void DrawLine(Point const& point1, Point const& point2, StrokeStylePtr stroke, float stroke_width) = 0; | ||||||
|                           float stroke_width = 1.0f) = 0; |  | ||||||
| 
 | 
 | ||||||
|     /// \~chinese
 |     /// \~chinese
 | ||||||
|     /// @brief 绘制矩形边框
 |     /// @brief 绘制矩形边框
 | ||||||
|     /// @param rect 矩形
 |     /// @param rect 矩形
 | ||||||
|     /// @param stroke 线条样式
 |     /// @param stroke 线条样式
 | ||||||
|     /// @param stroke_width 线条宽度
 |     /// @param stroke_width 线条宽度
 | ||||||
|     virtual void DrawRectangle(Rect const& rect, StrokeStylePtr stroke = nullptr, float stroke_width = 1.0f) = 0; |     virtual void DrawRectangle(Rect const& rect, StrokeStylePtr stroke, float stroke_width) = 0; | ||||||
| 
 | 
 | ||||||
|     /// \~chinese
 |     /// \~chinese
 | ||||||
|     /// @brief 绘制圆角矩形边框
 |     /// @brief 绘制圆角矩形边框
 | ||||||
|  | @ -113,8 +112,8 @@ public: | ||||||
|     /// @param radius 圆角半径
 |     /// @param radius 圆角半径
 | ||||||
|     /// @param stroke 线条样式
 |     /// @param stroke 线条样式
 | ||||||
|     /// @param stroke_width 线条宽度
 |     /// @param stroke_width 线条宽度
 | ||||||
|     virtual void DrawRoundedRectangle(Rect const& rect, Vec2 const& radius, StrokeStylePtr stroke = nullptr, |     virtual void DrawRoundedRectangle(Rect const& rect, Vec2 const& radius, StrokeStylePtr stroke, | ||||||
|                                       float stroke_width = 1.0f) = 0; |                                       float stroke_width) = 0; | ||||||
| 
 | 
 | ||||||
|     /// \~chinese
 |     /// \~chinese
 | ||||||
|     /// @brief 绘制椭圆边框
 |     /// @brief 绘制椭圆边框
 | ||||||
|  | @ -122,8 +121,8 @@ public: | ||||||
|     /// @param radius 椭圆半径
 |     /// @param radius 椭圆半径
 | ||||||
|     /// @param stroke 线条样式
 |     /// @param stroke 线条样式
 | ||||||
|     /// @param stroke_width 线条宽度
 |     /// @param stroke_width 线条宽度
 | ||||||
|     virtual void DrawEllipse(Point const& center, Vec2 const& radius, StrokeStylePtr stroke = nullptr, |     virtual void DrawEllipse(Point const& center, Vec2 const& radius, StrokeStylePtr stroke, | ||||||
|                              float stroke_width = 1.0f) = 0; |                              float stroke_width) = 0; | ||||||
| 
 | 
 | ||||||
|     /// \~chinese
 |     /// \~chinese
 | ||||||
|     /// @brief 填充形状
 |     /// @brief 填充形状
 | ||||||
|  |  | ||||||
|  | @ -26,41 +26,15 @@ namespace kiwano | ||||||
| 
 | 
 | ||||||
| StrokeStylePtr StrokeStyle::Create(CapStyle cap, LineJoinStyle line_join, DashStyle dash, float dash_offset) | StrokeStylePtr StrokeStyle::Create(CapStyle cap, LineJoinStyle line_join, DashStyle dash, float dash_offset) | ||||||
| { | { | ||||||
|     switch (dash) |     StrokeStylePtr ptr = new (std::nothrow) StrokeStyle; | ||||||
|  |     if (ptr) | ||||||
|     { |     { | ||||||
|     case DashStyle::Solid: |         ptr->SetCapStyle(cap); | ||||||
|     { |         ptr->SetLineJoinStyle(line_join); | ||||||
|         return StrokeStyle::Create(cap, line_join, nullptr, 0, dash_offset); |         ptr->SetDashStyle(dash); | ||||||
|  |         ptr->SetDashOffset(dash_offset); | ||||||
|     } |     } | ||||||
| 
 |     return ptr; | ||||||
|     case DashStyle::Dash: |  | ||||||
|     { |  | ||||||
|         float dash_array[] = { 2, 2 }; |  | ||||||
|         return StrokeStyle::Create(cap, line_join, dash_array, dash_offset); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     case DashStyle::Dot: |  | ||||||
|     { |  | ||||||
|         float dash_array[] = { 0, 2 }; |  | ||||||
|         return StrokeStyle::Create(cap, line_join, dash_array, dash_offset); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     case DashStyle::DashDot: |  | ||||||
|     { |  | ||||||
|         float dash_array[] = { 2, 2, 0, 2 }; |  | ||||||
|         return StrokeStyle::Create(cap, line_join, dash_array, dash_offset); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     case DashStyle::DashDotDot: |  | ||||||
|     { |  | ||||||
|         float dash_array[] = { 2, 2, 0, 2, 0, 2 }; |  | ||||||
|         return StrokeStyle::Create(cap, line_join, dash_array, dash_offset); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     default: |  | ||||||
|         break; |  | ||||||
|     } |  | ||||||
|     return nullptr; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| StrokeStylePtr StrokeStyle::Create(CapStyle cap, LineJoinStyle line_join, const float* dash_array, size_t dash_size, | StrokeStylePtr StrokeStyle::Create(CapStyle cap, LineJoinStyle line_join, const float* dash_array, size_t dash_size, | ||||||
|  | @ -69,11 +43,84 @@ StrokeStylePtr StrokeStyle::Create(CapStyle cap, LineJoinStyle line_join, const | ||||||
|     StrokeStylePtr ptr = new (std::nothrow) StrokeStyle; |     StrokeStylePtr ptr = new (std::nothrow) StrokeStyle; | ||||||
|     if (ptr) |     if (ptr) | ||||||
|     { |     { | ||||||
|         Renderer::GetInstance().CreateStrokeStyle(*ptr, cap, line_join, dash_array, dash_size, dash_offset); |         ptr->SetCapStyle(cap); | ||||||
|  |         ptr->SetLineJoinStyle(line_join); | ||||||
|  |         ptr->SetDashStyle(dash_array, dash_size); | ||||||
|  |         ptr->SetDashOffset(dash_offset); | ||||||
|     } |     } | ||||||
|     return ptr; |     return ptr; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| StrokeStyle::StrokeStyle() {} | StrokeStyle::StrokeStyle() | ||||||
|  |     : cap_(CapStyle::Flat) | ||||||
|  |     , line_join_(LineJoinStyle::Miter) | ||||||
|  |     , dash_offset_(0.0f) | ||||||
|  | { | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void StrokeStyle::SetDashStyle(DashStyle dash_style) | ||||||
|  | { | ||||||
|  |     switch (dash_style) | ||||||
|  |     { | ||||||
|  |     case DashStyle::Solid: | ||||||
|  |     { | ||||||
|  |         dash_array_.clear(); | ||||||
|  |         break; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     case DashStyle::Dash: | ||||||
|  |     { | ||||||
|  |         dash_array_ = { 2, 2 }; | ||||||
|  |         break; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     case DashStyle::Dot: | ||||||
|  |     { | ||||||
|  |         dash_array_ = { 0, 2 }; | ||||||
|  |         break; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     case DashStyle::DashDot: | ||||||
|  |     { | ||||||
|  |         dash_array_ = { 2, 2, 0, 2 }; | ||||||
|  |         break; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     case DashStyle::DashDotDot: | ||||||
|  |     { | ||||||
|  |         dash_array_ = { 2, 2, 0, 2, 0, 2 }; | ||||||
|  |         break; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     default: | ||||||
|  |         break; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void StrokeStyle::SetDashStyle(const Vector<float>& dash_array) | ||||||
|  | { | ||||||
|  |     dash_array_ = dash_array; | ||||||
|  |     style_.reset(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void StrokeStyle::SetDashStyle(const float* dash_array, size_t dash_size) | ||||||
|  | { | ||||||
|  |     if (dash_size == 0) | ||||||
|  |         dash_array_.clear(); | ||||||
|  |     else | ||||||
|  |         dash_array_.assign(dash_array, dash_array + dash_size); | ||||||
|  |     style_.reset(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | ComPtr<ID2D1StrokeStyle> StrokeStyle::GetStrokeStyle() const | ||||||
|  | { | ||||||
|  |     StrokeStyle& self = const_cast<StrokeStyle&>(*this); | ||||||
|  |     if (dash_array_.empty()) | ||||||
|  |         Renderer::GetInstance().CreateStrokeStyle(self, cap_, line_join_, nullptr, 0, dash_offset_); | ||||||
|  |     else | ||||||
|  |         Renderer::GetInstance().CreateStrokeStyle(self, cap_, line_join_, &dash_array_[0], dash_array_.size(), | ||||||
|  |                                                   dash_offset_); | ||||||
|  |     return style_; | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| }  // namespace kiwano
 | }  // namespace kiwano
 | ||||||
|  |  | ||||||
|  | @ -97,8 +97,8 @@ public: | ||||||
|     /// @param dash_array 线条虚线的长度与间隙数组
 |     /// @param dash_array 线条虚线的长度与间隙数组
 | ||||||
|     /// @param dash_offset 线条虚线偏移量
 |     /// @param dash_offset 线条虚线偏移量
 | ||||||
|     template <size_t _DashSize> |     template <size_t _DashSize> | ||||||
|     static StrokeStylePtr Create(CapStyle cap, LineJoinStyle                     line_join = LineJoinStyle::Miter, |     static inline StrokeStylePtr Create(CapStyle cap, LineJoinStyle line_join = LineJoinStyle::Miter, | ||||||
|                                  float (&dash_array)[_DashSize] = nullptr, float dash_offset = 0.0f) |                                         float (&dash_array)[_DashSize] = nullptr, float dash_offset = 0.0f) | ||||||
|     { |     { | ||||||
|         return StrokeStyle::Create(cap, line_join, dash_array, _DashSize, dash_offset); |         return StrokeStyle::Create(cap, line_join, dash_array, _DashSize, dash_offset); | ||||||
|     } |     } | ||||||
|  | @ -109,6 +109,67 @@ public: | ||||||
|     /// @brief 是否有效
 |     /// @brief 是否有效
 | ||||||
|     bool IsValid() const; |     bool IsValid() const; | ||||||
| 
 | 
 | ||||||
|  |     /// \~chinese
 | ||||||
|  |     /// @brief 获取线条端点样式
 | ||||||
|  |     CapStyle GetCapStyle() const; | ||||||
|  | 
 | ||||||
|  |     /// \~chinese
 | ||||||
|  |     /// @brief 获取线条交点样式
 | ||||||
|  |     LineJoinStyle GetLineJoinStyle() const; | ||||||
|  | 
 | ||||||
|  |     /// \~chinese
 | ||||||
|  |     /// @brief 获取线条虚线的长度与间隙数组
 | ||||||
|  |     const Vector<float>& GetDashArray() const; | ||||||
|  | 
 | ||||||
|  |     /// \~chinese
 | ||||||
|  |     /// @brief 获取虚线偏移量
 | ||||||
|  |     float GetDashOffset() const; | ||||||
|  | 
 | ||||||
|  |     /// \~chinese
 | ||||||
|  |     /// @brief 设置线条端点样式
 | ||||||
|  |     void SetCapStyle(CapStyle cap); | ||||||
|  | 
 | ||||||
|  |     /// \~chinese
 | ||||||
|  |     /// @brief 设置线条交点样式
 | ||||||
|  |     void SetLineJoinStyle(LineJoinStyle line_join); | ||||||
|  | 
 | ||||||
|  |     /// \~chinese
 | ||||||
|  |     /// @brief 设置虚线样式
 | ||||||
|  |     /// @param dash_style 线条虚线样式
 | ||||||
|  |     void SetDashStyle(DashStyle dash_style); | ||||||
|  | 
 | ||||||
|  |     /// \~chinese
 | ||||||
|  |     /// @brief 设置虚线样式
 | ||||||
|  |     /// @param dash_array 线条虚线的长度与间隙数组
 | ||||||
|  |     void SetDashStyle(const Vector<float>& dash_array); | ||||||
|  | 
 | ||||||
|  |     /// \~chinese
 | ||||||
|  |     /// @brief 设置虚线样式
 | ||||||
|  |     /// @param dash_array 线条虚线的长度与间隙数组
 | ||||||
|  |     /// @param dash_size 线条虚线数组大小
 | ||||||
|  |     void SetDashStyle(const float* dash_array, size_t dash_size); | ||||||
|  | 
 | ||||||
|  |     /// \~chinese
 | ||||||
|  |     /// @brief 设置虚线样式
 | ||||||
|  |     /// @tparam _DashSize 线条虚线数组大小
 | ||||||
|  |     /// @param dash_array 线条虚线的长度与间隙数组
 | ||||||
|  |     template <size_t _DashSize> | ||||||
|  |     inline void SetDashStyle(float (&dash_array)[_DashSize]) | ||||||
|  |     { | ||||||
|  |         SetDashStyle(dash_array, _DashSize); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /// \~chinese
 | ||||||
|  |     /// @brief 设置虚线偏移量
 | ||||||
|  |     /// @param dash_offset 线条虚线偏移量
 | ||||||
|  |     void SetDashOffset(float dash_offset); | ||||||
|  | 
 | ||||||
|  | private: | ||||||
|  |     CapStyle      cap_; | ||||||
|  |     LineJoinStyle line_join_; | ||||||
|  |     float         dash_offset_; | ||||||
|  |     Vector<float> dash_array_; | ||||||
|  | 
 | ||||||
| #if defined(KGE_WIN32) | #if defined(KGE_WIN32) | ||||||
| public: | public: | ||||||
|     ComPtr<ID2D1StrokeStyle> GetStrokeStyle() const; |     ComPtr<ID2D1StrokeStyle> GetStrokeStyle() const; | ||||||
|  | @ -122,15 +183,48 @@ private: | ||||||
| 
 | 
 | ||||||
| /** @} */ | /** @} */ | ||||||
| 
 | 
 | ||||||
| inline bool StrokeStyle::IsValid() const | inline CapStyle StrokeStyle::GetCapStyle() const | ||||||
| { | { | ||||||
|     return style_ != nullptr; |     return cap_; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | inline LineJoinStyle StrokeStyle::GetLineJoinStyle() const | ||||||
|  | { | ||||||
|  |     return line_join_; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | inline const Vector<float>& StrokeStyle::GetDashArray() const | ||||||
|  | { | ||||||
|  |     return dash_array_; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | inline float StrokeStyle::GetDashOffset() const | ||||||
|  | { | ||||||
|  |     return dash_offset_; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | inline void StrokeStyle::SetCapStyle(CapStyle cap) | ||||||
|  | { | ||||||
|  |     cap_ = cap; | ||||||
|  |     style_.reset(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | inline void StrokeStyle::SetLineJoinStyle(LineJoinStyle line_join) | ||||||
|  | { | ||||||
|  |     line_join_ = line_join; | ||||||
|  |     style_.reset(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | inline void StrokeStyle::SetDashOffset(float dash_offset) | ||||||
|  | { | ||||||
|  |     dash_offset_ = dash_offset; | ||||||
|  |     style_.reset(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #if defined(KGE_WIN32) | #if defined(KGE_WIN32) | ||||||
| inline ComPtr<ID2D1StrokeStyle> StrokeStyle::GetStrokeStyle() const | inline bool StrokeStyle::IsValid() const | ||||||
| { | { | ||||||
|     return style_; |     return style_ != nullptr; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| inline void StrokeStyle::SetStrokeStyle(ComPtr<ID2D1StrokeStyle> style) | inline void StrokeStyle::SetStrokeStyle(ComPtr<ID2D1StrokeStyle> style) | ||||||
|  |  | ||||||
|  | @ -32,7 +32,7 @@ namespace kiwano | ||||||
| 
 | 
 | ||||||
| /// \~chinese
 | /// \~chinese
 | ||||||
| /// @brief 文本布局
 | /// @brief 文本布局
 | ||||||
| class KGE_API TextLayout | class KGE_API TextLayout : public Noncopyable | ||||||
| { | { | ||||||
| public: | public: | ||||||
|     /// \~chinese
 |     /// \~chinese
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue