/************************************************************
* Live2D용 메모리 할당자
* live2d::LDAllocator의 가상 함수들을 오버라이드한다.
************************************************************/
class
MyLive2DAllocator
:
public
live2d
::
LDAllocator
{
public:
MyLive2DAllocator
()
{
}
virtual
~
MyLive2DAllocator
()
{
}
//---------------------------------------------------------------------------
// 초기화 처리
//
// Live2D::init()이 호출되 때 처리. 필요에 따라 구현하세요.
//---------------------------------------------------------------------------
virtual
void
init
(){
}
//---------------------------------------------------------------------------
// 종료 처리
//
// Live2D::dispose() 맨 마지막에 호출되는 종료 처리. 필요에 따라 구현하세요.
//---------------------------------------------------------------------------
virtual
void
dispose
(){
}
//---------------------------------------------------------------------------
// malloc
//
// ※초기화할 때를 제외하고 어느정도 큰 크기의 메모리가 필요할 때 (1024bytes 이상)되빈다.
//---------------------------------------------------------------------------
virtual
void
*
pageAlloc
(
unsigned
int
size
,
LDAllocator
::
Type
allocType
){
void
*
ptr
;
switch
(
allocType
){
case
LDAllocator
:
:
MAIN
: //
일반 메모리
ptr
=
::
malloc
(
size
)
;
break
;
case
LDAllocator
:
:
GPU
:
// GPU에 전달할 정점, 인덱스, UV 버퍼 메모리
ptr
=
::
malloc
(
size
)
;
break
;
default:
// 그외 (추후 추가될 가능성이 있습니다)
ptr
=
::
malloc
(
size
)
;
break
;
}
return
ptr
;
}
//---------------------------------------------------------------------------
// free
//---------------------------------------------------------------------------
virtual
void
pageFree
(
void
*
ptr
,
LDAllocator
::
Type
allocType
){
::
free
(
ptr
);
}
}
;