본문으로 바로가기

나만의 연습장

현재위치 :: HOME BLOG CATEGORY SEARCH ARCHIVE TAGS MEDIA LOCATION GUESTBOOK

네비게이션

  • 홈
  • 태그
  • 방명록
관리자
  • 블로그 이미지
    엄준식사생팬

    엄준식이 좋아요.

    링크추가
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃

C++20) Concepts ( 콘셉트, 개념 ) - 1

Concepts : Generic Programming의 미래 모든 내용은 Bjarne Stroustrup 교수님의 Good_Concepts에서 발췌하였습니다. Concepts 의 사용은 기존의 Unconstrained Template ( 제한되지 않은, 제약 없는 ) 에 비해 Runtime 비용이 없음을 의미합니다. 순전히 선택 메커니즘이며 선택 후 생성된 코드는 기존 템플릿 코드와 동일합니다. 1. 약간의 배경 지식 1987년경 Bjarne Stroustrup 교수는 적절한 인터페이스로 템플릿을 디자인하려고 했으나 실패했습니다. 원한 속성은 다음과 같습니다. 완전한 일반성 / 표현성 수작업 코딩에 비해 오버 헤드가 없음 잘 지정된 (well-specified) 인터페이스 그러나, 아무도 어떻게 이 세..

C++/Modern 5년 전

( D3DX12 / DirectX12 ) 2. DirectX12의 그리기 연산

DirectX12의 그리기 연산에 대해 작성한다. 실제로 글이 끝날 때엔, 각 Vertex들이 특별한 색을 갖는 상자 하나를 띄워보겠음 이 글은 개발자가 변환에 대해 이미 학습을 했다고 가정하고 작성한다. 그리기 연산의 순서는 다음과 같다. 1. Vertex 정의와 Input Layout 작성 2. Vertex Buffer 와 Vertex Buffer View 작성 3. Index Buffer 와 Index Buffer View 작성 ( 선택 ) 4. Vertex Shader와 Pixel Shader 작성 5. Constant Buffer Descriptor Heap 작성 6. Constant Buffer( Upload Heap )와 Constant Buffer View 작성 1. Vertex 정의와 I..

Graphics/DirectX 5년 전

C++20) Coroutine ( 코루틴 ) - 3

co_yield 사용하기 co_yield는 Coroutine의 유용한 키워드이며 일부 값을 반환하지만, 코루틴을 종료시키지 않을 때 사용됩니다. 일반적인 사용 방법은 "특정 유형의 Generator ( 또는 발생기 )"를 생성할 때 사용됩니다. 일단 간단한 Generator 함수를 작성하도록 합니다. promise_type에 co_yield 키워드에 맞는 함수를 선언 & 정의 하여야합니다. 실제 컴파일러가 co_yield를 만날 때 다음과 같은 코드가 생성됩니다. 따라서 promise_type에 yield_value를 추가해야 합니다. co_await가 누락되어있으나, 다음 글에서 다루겠습니다. const char* type에 따라 선언 & 정의된 promise_type은 다음과 같습니다. 실제로 Gen..

C++/Modern 5년 전

C++20) Coroutine ( 코루틴 ) - 2

Coroutine 상태가 할당되면, 해당 할당이 힙에서 발생할 수도 있습니다. ( 힙에 발생해야한다고 생각해야하지만, 컴파일러가 최적화 할 수도 있습니다. ) 만약 힙에서 발생하고, 우리가 만든 promise_type이 get_return_object_on_allocation_failure 을 선언해놨다면, non-throwing 버전의 new 연산자가 검색됩니다. 만약 Coroutine 할당에 실패하면, 즉시 예외가 발생하지 않습니다. 대신 컴파일러는 호출자쪽의 get_return_object_on_allocation_failure 함수를 호출합니다. 그러므로 다음과 같은 정적 멤버 함수를 promise_type에 선언 및 정의 합니다. 우리의 resumable 은 default 생성된 coroutin..

C++/Modern 5년 전

C++20) Coroutine ( 코루틴 ) - 1

프로그램이 실행될 때 불려지도록 만들어진 프로그램의 중심이 되는 코드들을 Main Routine 이라고 하며, Main Routine 이외에 다른 Routine을 모두 SubRoutine 이라고 한다. 그리고 진입 지점을 여러 개 가질 수 있는 SubRoutine을 CoRoutine 이라고 한다. CoRoutine은 호출한 Routine을 대등한 관계로 호출할 수 있기 때문에 다른 Routine의 종속관계가 아니라고 표현하기도 한다. C++ 에서는 Main함수가 Main Routine이고 그 외에 다른 함수들은 모두 SubRoutine 이라고 볼 수 있다. 즉 CoRoutine은 함수 내에서 호출한 쪽을 다시 호출할 수 있고, 다른 Routine에서 함수의 중간 지점을 호출할 수 있는 것이라고 할 수 있..

C++/Modern 5년 전

C++20) Designated Initializer ( 지정된 초기화 )

이전 Braced-Init-List(Aggregate Initialization) 와 Initializer_list 이후, struct 와 class 의 public 멤버 변수에 대한 목록 초기화가 가능 했다. ( class 는 생성자가 생성되어 있다면, 목록 초기화가 가능 ) 하지만 초기화 되어야 하는 멤버가 길어질 경우, 각 각의 인자가 어느 변수에 대응되는지를 확인할 수 없었고 특정 멤버 변수만 초기화 하는 것이 불가능 했다. C++20 의 Designated Initializer 가 추가된 이후 가능해졌다. C++11 Initializer_list : https://openmynotepad.tistory.com/14 이전 Braced-Init-List로 초기화 특정 변수만 초기화 할 수 있으며, ..

C++/Modern 5년 전

[Unreal Engine 4] Level Blueprint 를 C++로 접근하기

언리얼엔진4로 작업을 하다보면, Level 에 있는 Actor 간 통신을 하기에 중개자가 있으면 좋을 것 같단 생각을 한다. 이를 위해 다양한 방법을 사용하는데 우리는 Level을 사용할 것이다. ( 우리가 DirectX나 또는 소프트웨어 렌더러를 사용한다면 Scene 또는 Manager 정도로 생각하면 될 것 같다. ) Level을 C++로 작성하여 Custom 함수도 추가하고, Actor 간의 통신을 유연하게 할 예정이다. 작성할 내용은, 각 Scene에 있는 몬스터들을 추가한 후 Level에게 알려주고 몬스터가 다 죽는 이벤트가 발생할 시에 Level 의 Delegate로 모두에게 BroadCasting 하는 방법으로 작성할 예정이다. 기본적으로 Level Blueprint는 ALevelScript..

UnrealEngine/기능 5년 전

직접 제작한 게임들의 동영상을 게시하고 있습니다.

영상 추가 요소는 다음과 같습니다. WinAPI ( OBEngine, 자작 2D 게임 라이브러리 ) Python OpenGL UE4 DirectX12 Game Networking ( IOCP, EPOLL ) Algorithm https://www.youtube.com/channel/UCHmqNZn-TfokjYhjWNtM78A duckbae kim www.youtube.com 채널은 이곳입니다. 감사합니다.

C++/여담 5년 전
  • 이전
  • 1
  • ···
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • ···
  • 17
  • 다음

사이드바

NOTICE

  • 전체 보기
MORE+

CATEGORY

  • 분류 전체보기 (129)
    • 알고리즘 (13)
      • 정렬 (1)
      • 동적계획법 (9)
      • 완전탐색 (2)
    • C++ (63)
      • Modern (40)
      • Before (2)
      • STL (11)
      • 여담 (8)
      • WinApi (1)
    • Graphics (17)
      • 이론 (8)
      • DirectX (3)
      • Vulkan (6)
    • Computer Science (0)
    • UnrealEngine (32)
      • 기능 (13)
      • Impl (14)
      • Issue (1)
      • Editor (4)
    • Unity3D (4)
      • 기능 (4)

RECENTLY

  • 최근 글
  • 최근 댓글

최근 글

최근댓글

Trackback

TAG

  • UnrealEditor
  • UnrealEngineIssue
  • vulkan
  • 언리얼엔진5
  • unity3D
  • Before
  • 여담
  • UnrealEngine
  • stl
  • UnrealEngine5
  • 언리얼엔진4
  • Modern
  • c++
  • c++20
  • Firebase
MORE+

ARCHIVE

CALENDAR

«   2025/08   »
일 월 화 수 목 금 토
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

LINK

VISITOR

오늘
어제
전체
  • 홈으로
  • 방명록
  • 로그인
  • 로그아웃
  • 맨위로
SKIN BY COPYCATZ COPYRIGHT 나만의 연습장, ALL RIGHT RESERVED.
나만의 연습장
블로그 이미지 엄준식사생팬 님의 블로그
MENU
  • 홈
  • 태그
  • 방명록
CATEGORY
  • 분류 전체보기 (129)
    • 알고리즘 (13)
      • 정렬 (1)
      • 동적계획법 (9)
      • 완전탐색 (2)
    • C++ (63)
      • Modern (40)
      • Before (2)
      • STL (11)
      • 여담 (8)
      • WinApi (1)
    • Graphics (17)
      • 이론 (8)
      • DirectX (3)
      • Vulkan (6)
    • Computer Science (0)
    • UnrealEngine (32)
      • 기능 (13)
      • Impl (14)
      • Issue (1)
      • Editor (4)
    • Unity3D (4)
      • 기능 (4)
VISITOR 오늘 / 전체
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃
  • 취소

검색

  • UnrealEditor
  • UnrealEngineIssue
  • vulkan
  • 언리얼엔진5
  • unity3D
  • Before
  • 여담
  • UnrealEngine

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.