KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
DrawingBoardWidget.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Blueprint/UserWidget.h"
7#include "DrawingBoardWidget.generated.h"
8
12UCLASS()
13class ONEPIECE_API UDrawingBoardWidget : public UUserWidget
14{
15 GENERATED_BODY()
16
17public:
18 UDrawingBoardWidget(const FObjectInitializer& ObjectInitializer);
19 virtual void NativeConstruct() override;
20
21protected:
22 // Objects
23 UPROPERTY(VisibleAnywhere, BlueprintReadOnly)
24 TObjectPtr<class UTextureRenderTarget2D> RT_Canvas;
25
26 // Widgets
27 UPROPERTY(BlueprintReadOnly, meta=(BindWidget))
28 TObjectPtr<class UOverlay> Overlay_DrawWindow;
29 UPROPERTY(BlueprintReadOnly, meta=(BindWidget))
30 TObjectPtr<class UImage> Image_Canvas;
31 UPROPERTY(BlueprintReadOnly, meta=(BindWidget))
32 TObjectPtr<class UImageButton> Button_Clear;
33 UPROPERTY(BlueprintReadOnly, meta=(BindWidget))
34 TObjectPtr<class UImageButton> Button_Save;
35
36 // Values
37 UPROPERTY(BlueprintReadOnly)
38 FVector2D prevMousePos;
39 UPROPERTY(BlueprintReadOnly)
40 bool bIsDrawing;
41
42 // Mouse Event
43 virtual FReply NativeOnMouseButtonDown(const FGeometry& InGeometry, const FPointerEvent& InMouseEvent) override;
44 virtual FReply NativeOnMouseButtonUp(const FGeometry& InGeometry, const FPointerEvent& InMouseEvent) override;
45 virtual FReply NativeOnMouseMove(const FGeometry& InGeometry, const FPointerEvent& InMouseEvent) override;
46
47private:
48 // Close Draw Window
49 void CloseDrawWindow();
50
51 // Draw Functions
52 void DrawLines(FVector2D mousePos, FLinearColor drawColor);
53 void DrawPoint(FVector2D mousePos, FLinearColor drawColor);
54 FVector2D GetLocalMousePos(FVector2D mousePos);
55
56 // Clear Canvas
57 UFUNCTION()
58 void ClearCanvas();
59 // Save Render Target Canvas
60 UFUNCTION()
61 void SaveCanvas();
62
63 bool SaveRenderTargetToPNG(UTextureRenderTarget2D* RenderTarget, const FString& FullFilePath);
64};
UImageButton