/** * \brief Applies the bind pose skeleton of an animated geometry * \sa SCE_AnimGeom_ApplySkeleton() */ void SCE_AnimGeom_ApplyAnimSkeleton (SCE_SAnimatedGeometry *ageom) { #ifdef SCE_DEBUG if (!ageom->animskel) { SCEE_SendMsg ("this animated geometry has not animation skeleton, SCE_" "AnimGeom_ApplyBaseSkeleton() aborted"); } else #endif SCE_AnimGeom_ApplySkeleton (ageom, ageom->animskel); }
/** * \brief Adds an error source in the current error backtrace. * \param file file where the error occured * \param func func where the error occured * \param line line where the error occured */ void SCE_Error_LogSrc (const char *file, const char *func, unsigned int line) { SCE_SError *error = NULL; SCE_SErrorLog *l = SCE_Error_GetLog (); l->current++; if (l->current < SCE_BACKTRACE_DEPTH) { error = &l->errors[l->current]; error->line = line; strncpy (error->file, file, SCE_MAX_ERROR_INFO_LEN); if (func) strncpy (error->func, func, SCE_MAX_ERROR_INFO_LEN); } else { SCEE_SendMsg ("logging too much source: %s:%d in %s\n", file, line, func); l->current--; } }
/** * \brief Set error data into \c error * \param file File where the error occured * \param func Function where the error occured * \param line Line where the error occured * \param code Error code */ void SCE_Error_Log (const char *file, const char *func, unsigned int line, int code) { SCE_SError *error = NULL; SCE_SErrorLog *l = SCE_Error_GetLog (); error = l->errors; if (error->code != SCE_NO_ERROR) { SCEE_SendMsg ("SCEError: warning: an error is already logged " "for this thread, consider it erased:\n"); SCEE_Out (); } l->current = 0; error->date = time (NULL); error->line = line; error->code = code; strncpy (error->file, file, SCE_MAX_ERROR_INFO_LEN); if (func) strncpy (error->func, func, SCE_MAX_ERROR_INFO_LEN); SCE_Error_GetCodeMsg (error->code, error->msg, SCE_MAX_ERROR_MSG_LEN); }