/* FUNCTION: ViewBook :: DragDropImage ARGUMENTS: texture_id mouse_x mouse_y RETURN: true if source ownership acquired DESCRIPTION: Hook function called when user drags/drops image to app window */ bool ViewBook :: SurfaceUpdate(MediaSource *source, float mouse_x, float mouse_y) { Paper::TEXTURE_SIDE side = Paper::UNASSIGNED_TEXTURE; Paper *page = GetPage(mouse_x, mouse_y, (int *)&side); LockGL(); int index = -1; if (page == fPages[PAGE_LEFT]) index = 0; else if (page == fPages[PAGE_RIGHT]) index = 3; else if (page == fPages[PAGE_MIDDLE]) { if (side == Paper::FRONT_TEXTURE) index = 1; else if (side == Paper::BACK_TEXTURE) index = 2; } if (index >= 0) { if (fMediaSources[index] != GetDefaultMediaSource()) delete fMediaSources[index]; } page->SetMediaSource(side, source); fMediaSources[index] = source; UnlockGL(); return true; }