그래서 flascc를 다운로드하고 샘플을 엉망으로 작성했습니다.Stage3D 및 pthreads
샘플 09 (스레드) 및 샘플 12 (스테이지 3D)는 그 자체로 잘 작동했지만 Stage3D 샘플에서 스레드를 실행하려고 시도했을 때 절대로 시작되지 않았습니다.
여기
pthread_t thread;
printf("Start a thread");
int val = pthread_create(&thread, NULL, threadProc, NULL);
// Setup the stage
stage = internal::get_Stage();
stage->scaleMode = flash::display::StageScaleMode::NO_SCALE;
stage->align = flash::display::StageAlign::TOP_LEFT;
stage->frameRate = 60;
// Ask for a Stage3D context to be created
s3d = var(var(stage->stage3Ds)[0]);
s3d->addEventListener(flash::events::Event::CONTEXT3D_CREATE, Function::_new(initContext3D, NULL));
s3d->addEventListener(flash::events::ErrorEvent::ERROR, Function::_new(context3DError, NULL));
s3d->requestContext3D(flash::display3D::Context3DRenderMode::AUTO,
flash::display3D::Context3DProfile::BASELINE_CONSTRAINED);
// Suspend main() and return to the Flash runloop
AS3_GoAsync();
주()
에 내가 가진 코드이고 여기void *threadProc(void *arg)
{
printf("From a thread!");
}
에 ThreadProc 결코 실행되지 도착하는 기능입니다.
this 매뉴얼 페이지를 찾았지만 아무 것도 없다고 생각합니다. 내가 뭘 놓치고 있니?
죄송합니다. 답변은 아닙니다. 우선 main()은 AS3_GoAsync()로 인해 무한 루프가 될 것이므로 종료하지 않습니다. 또한 스레드를 결합하면 실행이 무기한 중단됩니다. 교착 상태일까요? 플래시 로그가 다음과 같이 인쇄됩니다. 오류 : 오류 # 1502 : 스크립트가 기본 제한 시간 인 15 초보다 오래 실행되었습니다. \t at flash.concurrent :: Condition/wait() \t at global/C_Run :: threadArbCondWait() – Habba
@Habba 누구나 가서 샘플을 찾지 않을 것을 기대할 수 없습니다. 그 안에 모든 정보가 들어있는 질문을 게시하면 정답을 기대할 수 없습니다. –
그러나 샘플을 모르는 경우에는 답변을 얻을 수 없습니다. 더 정확한 질문을 편집하겠습니다. – Habba