포스트

C# Windows Forms의 무료 차트 라이브러리와 GPU 가속

Visual Studio 2022 소프트웨어의 Nuget 패키지 관리자에서 많은 차트 그리기 라이브러리가 검색되지만, 실제 개발회사 사이트에 방문해 보면 무료로 사용하면 기능에 제한이 있거나 회사에서 사용하면 결제를 해야하는 유료정책을 가지고 있는 경우가 있다. 그 대안으로 이크로 소프트에서 공식 지원하는 차트 라이브러리와 기타 무료로 사용가능한 차트 라이브러리를 소개하려고 한다.

`Visual Studio 2022 > Manage Nuget Packages ...` - 많은 차트 라이브러리를 다운로드 받을 수 있지만, 유료이거나 기능상 제약이 있다. Visual Studio 2022 > Manage Nuget Packages ... - 많은 차트 라이브러리를 다운로드 받을 수 있지만, 유료이거나 기능상 제약이 있다.

마이크로소프트 차트

마이크로소프트가 제공하는 차트 컨트럴은 아래와 같은 특징을 가지고 있다.

  • WPF와 일반 Windows Forms App 프로젝트에서 차트 컨트럴 사용 불가능하다.
  • Windows Forms App 프로젝트에서 차트 컨트럴을 사용 가능한데, .NET Framework으로 프로젝트를 생성해야 한다.
  • 당연히, Windows Forms App 프로젝트기 때문에 그리기 동작에서 GPU 가속을 사용하지 못한다.

.NET Framework VS .NET
본래 마이크로소프트는 주로 윈도우 지원을 위한 .NET Framework와 크로스 플랫폼을 위한 .NET Core를 지원 했으나, 2020년 .NET Framework 4.8.1을 마지막 버전으로 하고 .NET Framework와 .NET Core를 통합해 .NET 이라는 이름으로 지원하게 되었다. 2024년 현재 .NET 8.0 버전이 최신이다.

프로젝트를 생성할때, Windows Forms App (.NET Framework) 를 선택한다.

Visual Studio 2022 - 프로젝트 생성 Visual Studio 2022 - 프로젝트 생성

그리고 Framework 에서 .NET Framework 4.8 을 선택한다. 4.8버전은 닷넷프레임워크의 마지막 버전이다.

Visual Studio 2022 - .NET Framework 4.8 선택 Visual Studio 2022 - .NET Framework 4.8 선택

프로젝트가 성공적으로 생성 되었다면, Form 디자이너에서 Data 섹션에서 Chart 컨트럴이 이용가능한 것을 확인 할 수 있다.

Visual Studio 2022 - Form 디자이너 Visual Studio 2022 - Form 디자이너

GPU 가속 사용 - SharpDX

기본적으로 Windows Forms App에서 GPU 가속을 사용할 수 없다. 하지만, SharpDX 라이브러리를 사용하면, DirectX를 통해 GPU 가속을 사용 할 수 있다.

아래 블로그의 글을 참조하지면, WPF가 기본으로 GPU 가속이 사용 가능한것에 비해 Windows Forms App에서는 추가적인 처리가 필요하기 때문에 간단해 보이지는 않았다. 마이크로소프트 차트를 사용할때 손쉬운 GPU 사용을 위한 클래스를 작성해 공유하겠다.

  • https://luckygg.tistory.com/389

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.