diff --git a/rcbasic_build/main.cpp b/rcbasic_build/main.cpp index bc2b1dc..be4fe34 100755 --- a/rcbasic_build/main.cpp +++ b/rcbasic_build/main.cpp @@ -498,8 +498,73 @@ bool rcbasic_compile() //debug_output_VMASM(); } +struct rc_dev_case_functions +{ + std::string code; + bool case_exception = false; +}; + void rcbasic_export_dev() { + std::vector rt_case_functions; + std::string input_line = ""; + + std::vector builtin_fn; + std::vector builtin_types; + std::vector builtin_var; + + + std::string builtin_temp = ""; + fstream rt_builtin_temp_file("intern_inc/rc_builtin_template.h", fstream::in); + while(!rt_builtin_temp_file.eof()) + { + getline(rt_builtin_temp_file, input_line); + builtin_temp += input_line + "\n"; + } + rt_builtin_temp_file.close(); + + fstream rt_case_file("intern_inc/switch_cases.h", fstream::in); + + if(!rt_case_file.is_open()) + return; + + while(!rt_case_file.eof()) + { + getline(rt_case_file, input_line); + if(input_line.substr(0,1).compare("#")==0) + { + std::string case_exception_file = input_line.substr(1); + fstream cf(case_exception_file, fstream::in); + input_line = ""; + std::string cf_contents = ""; + while(!cf.eof()) + { + getline(cf, input_line); + if(input_line.compare("") != 0) + cf_contents += "\t" + input_line + "\n"; + } + cf.close(); + + rc_dev_case_functions obj; + obj.case_exception = true; + obj.code = cf_contents; + rt_case_functions.push_back(obj); + } + else if(input_line.compare("") != 0) + { + rc_dev_case_functions obj; + obj.case_exception = false; + obj.code = input_line; + rt_case_functions.push_back(obj); + } + } + + rt_case_file.close(); + + //std::cout << "id_size ( " << rt_case_functions.size() << " ~ " << id[i].vmFunctionIndex << " ) " << std::endl << std::endl; + //return; + + string fn_line = ""; fstream f("rcbasic_dev.txt", fstream::out | fstream::trunc); fstream f2("rcbasic_dev2.txt", fstream::out | fstream::trunc); @@ -519,29 +584,52 @@ void rcbasic_export_dev() case ID_TYPE_FN_NUM: output_line += "ID_TYPE_FN_NUM);"; f2 << fn_line << endl; - f3 << "case FN_" << id[i].name << ": //Number Function" << endl << "break;" << endl; + f3 << "case FN_" << id[i].name << ": //Number Function" << endl; + if(rt_case_functions[id[i].vmFunctionIndex].case_exception) + f3 << rt_case_functions[id[i].vmFunctionIndex].code << endl; + else + f3 << "\t" << " rc_push_num(" << rt_case_functions[id[i].vmFunctionIndex].code << ");" << endl; + f3 << "\tbreak;" << endl; break; case ID_TYPE_FN_STR: output_line += "ID_TYPE_FN_STR);"; f2 << fn_line << endl; - f3 << "case FN_" << id[i].name << ": //String Function" << endl << "break;" << endl; + f3 << "case FN_" << id[i].name << ": //String Function" << endl; + if(rt_case_functions[id[i].vmFunctionIndex].case_exception) + f3 << rt_case_functions[id[i].vmFunctionIndex].code << endl; + else + f3 << "\t" << " rc_push_str(" << rt_case_functions[id[i].vmFunctionIndex].code << ");" << endl; + f3 << "\tbreak;" << endl; break; case ID_TYPE_FN_USER: - output_line += "ID_TYPE_FN_STR);"; + output_line += "ID_TYPE_FN_USER);"; f2 << fn_line << endl; - f3 << "case FN_" << id[i].name << ": //UDT Function" << endl << "break;" << endl; + f3 << "case FN_" << id[i].name << ": //UDT Function" << endl; + if(rt_case_functions[id[i].vmFunctionIndex].case_exception) + f3 << rt_case_functions[id[i].vmFunctionIndex].code << endl; + else + f3 << "\t" << " rc_push_usr(" << rt_case_functions[id[i].vmFunctionIndex].code << ");" << endl; + f3 << "\tbreak;" << endl; break; case ID_TYPE_SUB: output_line += "ID_TYPE_SUB);"; f2 << fn_line << endl; - f3 << "case FN_" << id[i].name << ": //Sub Procedure" << endl << "break;" << endl; + f3 << "case FN_" << id[i].name << ": //Sub Procedure" << endl; + if(rt_case_functions[id[i].vmFunctionIndex].case_exception) + f3 << rt_case_functions[id[i].vmFunctionIndex].code << endl; + else + f3 << "\t" << rt_case_functions[id[i].vmFunctionIndex].code << ";" << endl; + f3 << "\tbreak;" << endl; break; default: continue; } f << output_line << endl; + builtin_fn.push_back(output_line); + output_line = ""; string fn_arg_utype = ""; + for(int n = 0; n < id[i].num_args; n++) { fn_line = "#define " + StringToUpper(id[i].name + "_" + id[i].fn_arg[n]) + " "; @@ -582,7 +670,8 @@ void rcbasic_export_dev() break; } f2 << fn_line << endl; - f << output_line << endl; + f << output_line << endl; //I am generating the dev file for debug purposes only + builtin_fn.push_back(output_line); } } @@ -592,17 +681,21 @@ void rcbasic_export_dev() output_line = "create_type(\"" + utype[i].name + "\");"; f4 << output_line << endl; + builtin_types.push_back(output_line); for(int n = 0; n < utype[i].num_members; n++) { output_line = "vm_asm.push_back(\"mov n0 " + rc_intToString(utype[i].member_dim[n].dim_size[0]) + "\");"; f4 << output_line << endl; + builtin_types.push_back(output_line); output_line = "vm_asm.push_back(\"mov n1 " + rc_intToString(utype[i].member_dim[n].dim_size[1]) + "\");"; f4 << output_line << endl; + builtin_types.push_back(output_line); output_line = "vm_asm.push_back(\"mov n2 " + rc_intToString(utype[i].member_dim[n].dim_size[2]) + "\");"; f4 << output_line << endl; + builtin_types.push_back(output_line); int ut_index = utype[i].member_utype_index[n]; string member_utype_name = ""; @@ -623,6 +716,7 @@ void rcbasic_export_dev() output_line = "add_type_member(\"" + utype[i].member_name[n] + "\", " + rc_intToString(utype[i].member_type[n]) + ", \"" + member_utype_name + "\", " + rc_intToString(utype[i].member_dim_count[n]) + ", \"n0\", \"n1\", \"n2\");"; f4 << output_line << endl; + builtin_types.push_back(output_line); } } @@ -630,6 +724,79 @@ void rcbasic_export_dev() f2.close(); f3.close(); f4.close(); + + //Generate rc_builtin.h + fstream rt_builtin_gen_file("rc_builtin.h", fstream::out | fstream::trunc); + rt_builtin_gen_file << "#ifndef RC_BUILTIN_H_INCLUDED" << endl; + rt_builtin_gen_file << "#define RC_BUILTIN_H_INCLUDED" << endl; + rt_builtin_gen_file << "#include \"identifier.h\"" << endl; + rt_builtin_gen_file << endl; + + rt_builtin_gen_file << "void init_embedded_functions()" << endl; + rt_builtin_gen_file << "{" << endl; + for(int i = 0; i < builtin_fn.size(); i++) + rt_builtin_gen_file << "\t" << builtin_fn[i] << endl; + rt_builtin_gen_file << "}" << endl; + rt_builtin_gen_file << endl; + + rt_builtin_gen_file << "void init_embedded_types()" << endl; + rt_builtin_gen_file << "{" << endl; + for(int i = 0; i < builtin_types.size(); i++) + rt_builtin_gen_file << "\t" << builtin_types[i] << endl; + rt_builtin_gen_file << "}" << endl; + rt_builtin_gen_file << endl; + + + rt_builtin_gen_file << "void init_embedded_variables()" << endl; + rt_builtin_gen_file << "{" << endl; + for(int i = 0; i < builtin_var.size(); i++) + rt_builtin_gen_file << "\t" << builtin_var[i] << endl; + rt_builtin_gen_file << "}" << endl; + rt_builtin_gen_file << endl; + + rt_builtin_gen_file << "#endif // RC_BUILTIN_H_INCLUDED" << endl; + rt_builtin_gen_file.close(); + + + //Generate rc_defines.h + fstream rt_defines_gen_file("../rcbasic_runtime/rc_defines.h", fstream::out | fstream::trunc); + fstream dev_defines_file("rcbasic_dev2.txt", fstream::in); + input_line = ""; + + rt_defines_gen_file << "#ifndef RC_DEFINES_H_INCLUDED" << endl; + rt_defines_gen_file << "#define RC_DEFINES_H_INCLUDED" << endl; + rt_defines_gen_file << endl; + + while(!dev_defines_file.eof()) + { + getline(dev_defines_file, input_line); + rt_defines_gen_file << input_line << endl; + } + + rt_defines_gen_file << endl; + rt_defines_gen_file << "#endif // RC_DEFINES_H_INCLUDED" << endl; + + dev_defines_file.close(); + rt_defines_gen_file.close(); + + + //Generate RCBasic to C++ function map cases + fstream dev_case_file("rcbasic_dev3.txt", fstream::in); + fstream rt_switch_case_file("../rcbasic_runtime/rc_func130_cases.h", fstream::out | fstream::trunc); + + input_line = ""; + + while(!dev_case_file.eof()) + { + getline(dev_case_file, input_line); + rt_switch_case_file << input_line << endl; + } + + dev_case_file.close(); + rt_switch_case_file.close(); + + + cout << "rcbasic_dev file was created" << endl; } diff --git a/rcbasic_build/rcbasic4_changes.ods b/rcbasic_build/rcbasic4_changes.ods index 37e80b7..3731068 100644 Binary files a/rcbasic_build/rcbasic4_changes.ods and b/rcbasic_build/rcbasic4_changes.ods differ diff --git a/rcbasic_runtime/main.cpp b/rcbasic_runtime/main.cpp index 9edb8b7..2ec0dea 100755 --- a/rcbasic_runtime/main.cpp +++ b/rcbasic_runtime/main.cpp @@ -50,7 +50,6 @@ #include "rc_stdlib.h" #include "rc_media.h" #include "rc_matrix.h" -#include "rc_process.h" #include "rc_geometry.h" using namespace std; @@ -2559,1696 +2558,7 @@ void func_130(uint64_t fn) //need to setup a switch statement for all buitlin fucntions here switch(fn) { - case FN_FPrint: - //cout << "gosub addr size: " << gosub_return_addr.size() << endl; - //cout << "for stack size: " << loop_stack.size() << endl; - //cout << "byref addr table: " << byref_addr_table.size() << endl << endl; - rc_fprint( FPRINT_TXT$ ); - break; - case FN_Input$: - rc_push_str( rc_input(INPUT$_PROMPT$) ); - break; - case FN_StringArrayDim: - rc_push_num( rc_string_array_dim( (rc_strId*) str_var[0].sid_value.ref_parent ) ); - arr_ref_id.clear(); - break; - case FN_NumberArrayDim: - rc_push_num( rc_number_array_dim( (rc_numId*)num_var[0].nid_value.ref_parent ) ); - arr_ref_id.clear(); - break; - case FN_StringArraySize: - rc_push_num( rc_string_array_size( (rc_strId*) str_var[0].sid_value.ref_parent, STRINGARRAYSIZE_ARRAY_DIM)); - arr_ref_id.clear(); - break; - case FN_NumberArraySize: - rc_push_num( rc_number_array_size( (rc_numId*)num_var[0].nid_value.ref_parent, NUMBERARRAYSIZE_ARRAY_DIM)); - arr_ref_id.clear(); - break; - case FN_Abs: - rc_push_num( rc_intern_abs( ABS_N ) ); - break; - case FN_ACos: - rc_push_num( rc_intern_aCos( ACOS_N ) ); - break; - case FN_AndBit: - rc_push_num( rc_intern_andBit( ANDBIT_A, ANDBIT_B ) ); - break; - case FN_ASin: - rc_push_num( rc_intern_aSin( ASIN_N ) ); - break; - case FN_ATan: - rc_push_num( rc_intern_aTan( ATAN_N ) ); - break; - case FN_Bin$: - rc_push_str( rc_intern_bin( BIN$_N ) ); - break; - case FN_CInt32: - rc_push_num( rc_intern_cint32( CINT32_I )); - break; - case FN_CInt64: - rc_push_num( rc_intern_cint64( CINT64_I )); - break; - case FN_Cos: - rc_push_num( rc_intern_cos( COS_N ) ); - break; - case FN_Degrees: - rc_push_num( rc_intern_degrees(DEGREES_R)); - break; - case FN_Exp: - rc_push_num( rc_intern_exp( EXP_N ) ); - break; - case FN_Frac: - rc_push_num( rc_intern_frac( FRAC_N ) ); - break; - case FN_Hex$: - rc_push_str( rc_intern_hex( HEX$_N ) ); - break; - case FN_HexVal: - rc_push_num( rc_intern_hexInt( HEXVAL_N$ ) ); - break; - case FN_Int: - rc_push_num( rc_intern_int( INT_N ) ); - break; - case FN_Log: - rc_push_num( rc_intern_log( LOG_N ) ); - break; - case FN_Max: - rc_push_num( rc_intern_max( MAX_A, MAX_B ) ); - break; - case FN_Min: - rc_push_num( rc_intern_min( MIN_A, MIN_B ) ); - break; - case FN_OrBit: - rc_push_num( rc_intern_orBit( ORBIT_A, ORBIT_B ) ); - break; - case FN_Radians: - rc_push_num( rc_intern_radians(RADIANS_D)); - break; - case FN_Randomize: - rc_push_num( rc_intern_randomize( RANDOMIZE_N ) ); - break; - case FN_Rand: - rc_push_num( rc_intern_rand( RAND_N ) ); - break; - case FN_Round: - rc_push_num( rc_intern_round( ROUND_N ) ); - break; - case FN_Sign: - rc_push_num( rc_intern_sign( SIGN_N ) ); - break; - case FN_Sin: - rc_push_num( rc_intern_sin( SIN_N ) ); - break; - case FN_Sqrt: - rc_push_num( rc_intern_sqrt( SQRT_N ) ); - break; - case FN_Tan: - rc_push_num( rc_intern_tan( TAN_N ) ); - break; - case FN_XOrBit: - rc_push_num( rc_intern_xorbit( XORBIT_A, XORBIT_B ) ); - break; - case FN_Asc: - rc_push_num( rc_intern_asc( ASC_C$ ) ); - break; - case FN_Chr$: - rc_push_str( rc_intern_chr( CHR$_N ) ); - break; - case FN_Insert$: - rc_push_str( rc_intern_insert( INSERT$_SRC$, INSERT$_TGT$, INSERT$_POS ) ); - break; - case FN_InStr: - rc_push_num( rc_intern_instr( INSTR_SRC$, INSTR_SUBSTR$ ) ); - break; - case FN_LCase$: - rc_push_str( rc_intern_lcase( LCASE$_SRC$ ) ); - break; - case FN_Left$: - rc_push_str( rc_intern_left( LEFT$_SRC$, LEFT$_N ) ); - break; - case FN_Len: - rc_push_num( rc_intern_length( LEN_SRC$ ) ); - break; - case FN_Length: - rc_push_num( rc_intern_length( LENGTH_SRC$ ) ); - break; - case FN_LTrim$: - rc_push_str( rc_intern_ltrim( LTRIM$_SRC$ ) ); - break; - case FN_Mid$: - rc_push_str( rc_intern_mid( MID$_SRC$, MID$_START, MID$_N ) ); - break; - case FN_ReplaceSubstr$: - rc_push_str( rc_intern_replaceSubstr( REPLACESUBSTR$_SRC$, REPLACESUBSTR$_RPC$, REPLACESUBSTR$_POS) ); - break; - case FN_Replace$: - rc_push_str( rc_intern_replace( REPLACE$_SRC$, REPLACE$_TGT$, REPLACE$_RPC$ ) ); - break; - case FN_Reverse$: - rc_push_str( rc_intern_reverse( REVERSE$_SRC$ ) ); - break; - case FN_Right$: - rc_push_str( rc_intern_right( RIGHT$_SRC$, RIGHT$_N ) ); - break; - case FN_RTrim$: - rc_push_str( rc_intern_rtrim( RTRIM$_SRC$ ) ); - break; - case FN_StringFill$: - rc_push_str( rc_intern_stringfill( STRINGFILL$_SRC$, STRINGFILL$_N ) ); - break; - case FN_Str$: - rc_push_str( rc_intern_str( STR$_N ) ); - break; - case FN_Str_F$: - rc_push_str( rc_intern_str_f( STR_F$_N ) ); - break; - case FN_Str_S$: - rc_push_str( rc_intern_str_s( STR_S$_N ) ); - break; - case FN_Tally: - rc_push_num( rc_intern_tally( TALLY_SRC$, TALLY_SUBSTR$ ) ); - break; - case FN_Trim$: - rc_push_str( rc_intern_trim( TRIM$_SRC$ ) ); - break; - case FN_UCase$: - rc_push_str( rc_intern_ucase( UCASE$_SRC$ ) ); - break; - case FN_Val: - rc_push_num( rc_intern_val( VAL_N$ ) ); - break; - case FN_Stack_N: //Sub Procedure - if(STACK_N_N >= 0 && STACK_N_N <= (MAX_USER_STACKS-1)) - rc_user_active_n_stack = STACK_N_N; - else - cout << "Stack_N Error: Exceeds available stacks" << endl; - break; - case FN_Stack_S: //Sub Procedure - if(STACK_S_N >= 0 && STACK_S_N <= (MAX_USER_STACKS-1)) - rc_user_active_s_stack = STACK_S_N; - else - cout << "Stack_S Error: Exceeds available stacks" << endl; - break; - case FN_Push_N: - rc_intern_push_n( PUSH_N_N ); - break; - case FN_Pop_N: - rc_push_num( rc_intern_pop_n() ); - break; - case FN_Push_S: - rc_intern_push_s( PUSH_S_S$ ); - break; - case FN_Pop_S$: - rc_push_str( rc_intern_pop_s() ); - break; - case FN_Stack_Size_N: - rc_push_num( rc_intern_n_stack_size() ); - break; - case FN_Stack_Size_S: - rc_push_num( rc_intern_s_stack_size() ); - break; - case FN_FileOpen: - rc_push_num( rc_intern_fileOpen( FILEOPEN_STREAM, FILEOPEN_FILENAME$, FILEOPEN_MODE ) ); - break; - case FN_FileClose: - rc_intern_fileClose( FILECLOSE_STREAM ); - break; - case FN_ReadByte: - rc_push_num( rc_intern_fileReadByte( READBYTE_STREAM ) ); - break; - case FN_WriteByte: - rc_intern_fileWriteByte( WRITEBYTE_STREAM, WRITEBYTE_BYTE ); - break; - case FN_ReadLine$: - rc_push_str( rc_intern_fileReadLine( READLINE$_STREAM ) ); - break; - case FN_Write: - rc_intern_fileWrite( WRITE_STREAM, WRITE_TXT$ ); - break; - case FN_WriteLine: - rc_intern_fileWriteLine( WRITELINE_STREAM, WRITELINE_TXT$ ); - break; - case FN_CopyFile: - rc_intern_fileCopy( COPYFILE_SRC$, COPYFILE_DST$ ); - break; - case FN_RemoveFile: - rc_push_num( rc_intern_fileDelete( REMOVEFILE_FILENAME$ ) ); - break; - case FN_FileExists: - rc_push_num( rc_intern_fileExist( FILEEXISTS_FILENAME$ ) ); - break; - case FN_MoveFile: - rc_push_num( rc_intern_fileMove( MOVEFILE_SRC$, MOVEFILE_DST$ ) ); - break; - case FN_RenameFile: - rc_push_num( rc_intern_fileRename( RENAMEFILE_SRC$, RENAMEFILE_DST$ ) ); - break; - case FN_FileLength: - rc_push_num( rc_intern_fileLength( FILELENGTH_FILENAME$ ) ); - break; - case FN_Tell: - rc_push_num( rc_intern_fileTell( TELL_STREAM ) ); - break; - case FN_Seek: - rc_push_num( rc_intern_fileSeek( SEEK_STREAM, SEEK_POS ) ); - break; - case FN_EOF: - rc_push_num( rc_intern_eof( EOF_STREAM ) ); - break; - case FN_FreeFile: - rc_push_num( rc_intern_freeFile() ); - break; - case FN_ChangeDir: - rc_intern_dirChange( CHANGEDIR_P$ ); - break; - case FN_DirExists: - rc_push_num( rc_intern_dirExist( DIREXISTS_P$ ) ); - break; - case FN_DirFirst$: - rc_push_str( rc_intern_dirFirst() ); - break; - case FN_Dir$: - rc_push_str( rc_intern_dir() ); - break; - case FN_DirNext$: - rc_push_str( rc_intern_dirNext() ); - break; - case FN_MakeDir: - rc_push_num( rc_intern_dirCreate( MAKEDIR_P$ ) ); - break; - case FN_RemoveDir: - rc_push_num( rc_intern_dirDelete( REMOVEDIR_P$ ) ); - break; - case FN_Date$: - rc_push_str( rc_intern_date() ); - break; - case FN_Easter$: - rc_push_str( rc_intern_easter(EASTER$_YEAR) ); - break; - case FN_Ticks: - rc_push_num( rc_intern_ticks() ); - break; - case FN_Time$: - rc_push_str( rc_intern_time() ); - break; - case FN_Timer: - rc_push_num( rc_intern_timer() ); - break; - case FN_Wait: - rc_intern_wait( WAIT_M_SEC ); - break; - case FN_WindowOpen: //Sub Procedure - rc_media_openWindow_hw( WINDOWOPEN_WIN, WINDOWOPEN_TITLE$, WINDOWOPEN_X, WINDOWOPEN_Y, WINDOWOPEN_W, WINDOWOPEN_H, WINDOWOPEN_FLAG, WINDOWOPEN_VSYNC); - break; - case FN_WindowClose: //Sub Procedure - rc_media_closeWindow_hw( WINDOWCLOSE_WIN ); - break; - case FN_RaiseWindow: //Sub Procedure - rc_media_raiseWindow( RAISEWINDOW_WIN ); - break; - case FN_Window: //Sub Procedure - rc_media_setActiveWindow( WINDOW_WIN ); - break; - case FN_Update: //Sub Procedure - //cout << "update call" << endl; - rc_events(); - rc_media_updateWindow_hw(); - #ifdef RC_WEB - emscripten_sleep(0); - #else - SDL_Delay(0); - #endif // RC_WEB - break; - case FN_Cls: //Sub Procedure - rc_media_cls(); - break; - case FN_SetClearColor: - rc_media_setClearColor( SETCLEARCOLOR_C ); - break; - case FN_ShowWindow: //Sub Procedure - rc_media_showWindow( SHOWWINDOW_WIN ); - break; - case FN_HideWindow: //Sub Procedure - rc_media_hideWindow( HIDEWINDOW_WIN ); - break; - case FN_SetWindowTitle: //Sub Procedure - rc_media_setWindowTitle( SETWINDOWTITLE_WIN, SETWINDOWTITLE_TITLE$ ); - break; - case FN_WindowTitle$: //String Function - rc_push_str( rc_media_getWindowTitle( WINDOWTITLE$_WIN )); - break; - case FN_SetWindowPosition: //Sub Procedure - rc_media_setWindowPosition( SETWINDOWPOSITION_WIN, SETWINDOWPOSITION_X, SETWINDOWPOSITION_Y ); - break; - case FN_GetWindowPosition: //Sub Procedure - rc_media_getWindowPosition( SETWINDOWPOSITION_WIN, &SETWINDOWPOSITION_X, &SETWINDOWPOSITION_Y ); - break; - case FN_SetWindowSize: //Sub Procedure - rc_media_setWindowSize( SETWINDOWSIZE_WIN, SETWINDOWSIZE_W, SETWINDOWSIZE_H ); - break; - case FN_GetWindowSize: //Sub Procedure - rc_media_getWindowSize( GETWINDOWSIZE_WIN, &GETWINDOWSIZE_W, &GETWINDOWSIZE_H); - break; - case FN_SetWindowMinSize: //Sub Procedure - rc_media_setWindowMinSize( SETWINDOWMINSIZE_WIN, SETWINDOWMINSIZE_W, SETWINDOWMINSIZE_H ); - break; - case FN_GetWindowMinSize: //Sub Procedure - rc_media_getWindowMinSize( GETWINDOWMINSIZE_WIN, &GETWINDOWMINSIZE_W, &GETWINDOWMINSIZE_H ); - break; - case FN_SetWindowMaxSize: //Sub Procedure - rc_media_setWindowMaxSize( SETWINDOWMAXSIZE_WIN, SETWINDOWMAXSIZE_W, SETWINDOWMAXSIZE_H ); - break; - case FN_GetWindowMaxSize: //Sub Procedure - rc_media_getWindowMaxSize( GETWINDOWMAXSIZE_WIN, &GETWINDOWMAXSIZE_W, &GETWINDOWMAXSIZE_H ); - break; - case FN_WindowIsFullscreen: //Number Function - rc_push_num( rc_media_windowIsFullscreen( WINDOWISFULLSCREEN_WIN ) ); - break; - case FN_WindowIsVisible: //Number Function - rc_push_num( rc_media_windowIsVisible( WINDOWISVISIBLE_WIN ) ); - break; - case FN_WindowIsBordered: //Number Function - rc_push_num( rc_media_windowIsBordered( WINDOWISBORDERED_WIN ) ); - break; - case FN_WindowIsResizable: //Number Function - rc_push_num( rc_media_windowIsResizable( WINDOWISRESIZABLE_WIN ) ); - break; - case FN_WindowIsMinimized: //Number Function - rc_push_num( rc_media_windowIsMinimized( WINDOWISMINIMIZED_WIN ) ); - break; - case FN_WindowIsMaximized: //Number Function - rc_push_num( rc_media_windowIsMaximized( WINDOWISMAXIMIZED_WIN ) ); - break; - case FN_WindowHasInputFocus: //Number Function - rc_push_num( rc_media_windowHasInputFocus( WINDOWHASINPUTFOCUS_WIN ) ); - break; - case FN_WindowHasMouseFocus: //Number Function - rc_push_num( rc_media_windowHasMouseFocus( WINDOWHASMOUSEFOCUS_WIN ) ); - break; - case FN_SetWindowFullscreen: //Sub Procedure - rc_media_setWindowFullscreen( SETWINDOWFULLSCREEN_WIN, SETWINDOWFULLSCREEN_FLAG ); - rc_media_cls(); - break; - case FN_MaximizeWindow: //Sub Procedure - rc_media_maximizeWindow( MAXIMIZEWINDOW_WIN ); - break; - case FN_MinimizeWindow: //Sub Procedure - rc_media_minimizeWindow( MINIMIZEWINDOW_WIN ); - break; - case FN_SetWindowBorder: //Sub Procedure - rc_media_setWindowBordered( SETWINDOWBORDER_WIN, SETWINDOWBORDER_FLAG ); - break; - case FN_WindowClip: //Sub Procedure - rc_media_getWindowClip_hw( WINDOWCLIP_SLOT, WINDOWCLIP_X, WINDOWCLIP_Y, WINDOWCLIP_W, WINDOWCLIP_H ); - break; - case FN_WindowExists: //Number Function - rc_push_num( rc_media_windowExists( WINDOWEXISTS_WIN ) ); - break; - case FN_NumWindows: //Number Function - rc_push_num( rc_media_numWindows() ); - break; - case FN_WindowEvent_Close: //Number Function - rc_push_num( rc_media_windowEvent_Close( WINDOWEVENT_CLOSE_WIN ) ); - break; - case FN_WindowEvent_Maximize: //Number Function - rc_push_num( rc_media_windowEvent_Maximize( WINDOWEVENT_MAXIMIZE_WIN ) ); - break; - case FN_WindowEvent_Minimize: //Number Function - rc_push_num( rc_media_windowEvent_Minimize( WINDOWEVENT_MINIMIZE_WIN ) ); - break; - case FN_ActiveWindow: - rc_push_num(rc_active_window); - break; - case FN_SetWindowIcon: - rc_media_setWindowIcon( SETWINDOWICON_WIN, SETWINDOWICON_SLOT ); - break; - case FN_FPS: - rc_push_num(rc_fps[rc_active_window]); - break; - case FN_CanvasOpen: //Sub Procedure - rc_media_openScreen_hw( CANVASOPEN_C_NUM, CANVASOPEN_W, CANVASOPEN_H, CANVASOPEN_VIEWPORT_X, CANVASOPEN_VIEWPORT_Y, CANVASOPEN_VIEWPORT_W, CANVASOPEN_VIEWPORT_H, CANVASOPEN_MODE); - break; - case FN_CanvasClose: //Sub Procedure - rc_media_closeScreen_hw( CANVASCLOSE_C_NUM ); - break; - case FN_SetCanvasVisible: //Sub Procedure - rc_media_setScreenVisible( SETCANVASVISIBLE_C_NUM, SETCANVASVISIBLE_FLAG ); - break; - case FN_CanvasIsVisible: //Number Function - rc_push_num( rc_media_screenIsVisible( CANVASISVISIBLE_C_NUM ) ); - break; - case FN_SetCanvasViewport: //Sub Procedure - rc_media_setScreenViewport( SETCANVASVIEWPORT_CNUM, SETCANVASVIEWPORT_X, SETCANVASVIEWPORT_Y, SETCANVASVIEWPORT_W, SETCANVASVIEWPORT_H ); - break; - case FN_GetCanvasViewport: //Sub Procedure - rc_media_getScreenViewport( GETCANVASVIEWPORT_C_NUM, &GETCANVASVIEWPORT_X, &GETCANVASVIEWPORT_Y, &GETCANVASVIEWPORT_W, &GETCANVASVIEWPORT_H ); - break; - case FN_Canvas: //Sub Procedure - rc_media_screen_hw( CANVAS_C_NUM ); - break; - case FN_SetCanvasOffset: //Sub Procedure - rc_media_screenOffset( SETCANVASOFFSET_C_NUM, SETCANVASOFFSET_X, SETCANVASOFFSET_Y ); - break; - case FN_GetCanvasOffset: //Sub Procedure - rc_media_getScreenOffset( GETCANVASOFFSET_C_NUM, &GETCANVASOFFSET_X, &GETCANVASOFFSET_Y ); - break; - case FN_GetCanvasSize: //Sub Procedure - rc_media_getScreenSize( GETCANVASSIZE_C_NUM, &GETCANVASSIZE_W, &GETCANVASSIZE_H ); - break; - case FN_ClearCanvas: //Sub Procedure - rc_media_clearScreen_hw(); - break; - case FN_SetCanvasAlpha: //Sub Procedure - rc_media_setScreenAlpha_hw( SETCANVASALPHA_C_NUM, SETCANVASALPHA_A ); - break; - case FN_CanvasAlpha: - rc_push_num(rc_media_ScreenAlpha_hw(CANVASALPHA_C_NUM)); - break; - case FN_SetCanvasBlendMode: - rc_push_num(rc_media_setScreenBlendMode_hw(SETCANVASBLENDMODE_C_NUM, SETCANVASBLENDMODE_BLEND_MODE)); - break; - case FN_CanvasBlendMode: - rc_push_num(rc_media_screenBlendMode_hw(CANVASBLENDMODE_C_NUM)); - break; - case FN_SetCanvasColorMod: - rc_push_num(rc_media_setScreenColorMod_hw(SETCANVASCOLORMOD_C_NUM, SETCANVASCOLORMOD_C)); - break; - case FN_CanvasColorMod: - rc_push_num(rc_media_screenColorMod_hw(CANVASCOLORMOD_C_NUM)); - break; - case FN_CopyCanvas: //Sub Procedure - rc_media_copyScreen_hw( COPYCANVAS_SRC, COPYCANVAS_X, COPYCANVAS_Y, COPYCANVAS_W, COPYCANVAS_H, COPYCANVAS_DST, COPYCANVAS_DX, COPYCANVAS_DY ); - break; - case FN_CloneCanvas: //Sub Procedure - rc_media_cloneScreen_hw( CLONECANVAS_SRC, CLONECANVAS_DST ); - break; - case FN_SetCanvasZ: //Sub Procedure - rc_media_setScreenZ( SETCANVASZ_C_NUM, SETCANVASZ_Z ); - break; - case FN_CanvasZ: - rc_push_num( rc_media_screenZ( CANVASZ_C_NUM) ); - break; - case FN_CanvasClip: //Sub Procedure - rc_media_getScreenClip2_hw( CANVASCLIP_SLOT, CANVASCLIP_X, CANVASCLIP_Y, CANVASCLIP_W, CANVASCLIP_H, CANVASCLIP_FLAG ); - break; - case FN_ActiveCanvas: - rc_push_num(rc_active_screen); - break; - case FN_Box: //Sub Procedure - rc_media_box_hw( BOX_X1, BOX_Y1, BOX_X2, BOX_Y2 ); - break; - case FN_BoxFill: //Sub Procedure - rc_media_boxFill_hw( BOXFILL_X1, BOXFILL_Y1, BOXFILL_X2, BOXFILL_Y2 ); - break; - case FN_Circle: //Sub Procedure - rc_media_circle_hw( CIRCLE_X, CIRCLE_Y, CIRCLE_RADIUS ); - break; - case FN_CircleFill: //Sub Procedure - rc_media_circleFill_hw( CIRCLEFILL_X, CIRCLEFILL_Y, CIRCLEFILL_RADIUS ); - break; - case FN_Ellipse: //Sub Procedure - rc_media_ellipse_hw( ELLIPSE_X, ELLIPSE_Y, ELLIPSE_RX, ELLIPSE_RY ); - break; - case FN_EllipseFill: //Sub Procedure - rc_media_ellipseFill_hw( ELLIPSEFILL_X, ELLIPSEFILL_Y, ELLIPSEFILL_RX, ELLIPSEFILL_RY ); - break; - case FN_FloodFill: //Sub Procedure - //cout << "FLOOD_X = " << FLOODFILL_X << endl; - rc_media_floodFill_hw( FLOODFILL_X, FLOODFILL_Y ); - break; - case FN_GetPixel: //Number Function - rc_push_num( rc_media_getPixel_hw( GETPIXEL_X, GETPIXEL_Y ) ); - break; - case FN_SetColor: //Sub Procedure - rc_media_ink( SETCOLOR_C ); - break; - case FN_Line: //Sub Procedure - rc_media_line_hw( LINE_X1, LINE_Y1, LINE_X2, LINE_Y2 ); - break; - case FN_Poly: //Sub Procedure - rc_media_poly( POLY_N, &POLY_X, &POLY_Y ); - break; - case FN_PolyFill: //Sub Procedure - rc_media_polyfill( POLYFILL_N, &POLYFILL_X, &POLYFILL_Y ); - break; - case FN_Rect: //Sub Procedure - rc_media_rectangle( RECT_X, RECT_Y, RECT_W, RECT_H ); - break; - case FN_RectFill: //Sub Procedure - rc_media_rectangleFill( RECTFILL_X, RECTFILL_Y, RECTFILL_W, RECTFILL_H ); - break; - case FN_RoundRect: //Sub Procedure - rc_media_roundRect( ROUNDRECT_X, ROUNDRECT_Y, ROUNDRECT_W, ROUNDRECT_H, ROUNDRECT_R); - break; - case FN_RoundRectFill: //Sub Procedure - rc_media_roundRectFill( ROUNDRECTFILL_X, ROUNDRECTFILL_Y, ROUNDRECTFILL_W, ROUNDRECTFILL_H, ROUNDRECTFILL_R ); - break; - case FN_RGB: //Sub Procedure - rc_push_num( rc_media_rgb( RGB_R, RGB_G, RGB_B ) ); - break; - case FN_RGBA: //Sub Procedure - rc_push_num( rc_media_rgba( RGBA_R, RGBA_G, RGBA_B, RGBA_A ) ); - break; - case FN_PSet: //Sub Procedure - rc_media_drawPixel_hw( PSET_X, PSET_Y ); - break; - case FN_LoadImage: //Sub Procedure - rc_media_loadImage_hw( LOADIMAGE_SLOT, LOADIMAGE_IMG$ ); - break; - case FN_LoadImage_Ex: //Sub Procedure - rc_media_loadImage_ex_hw( LOADIMAGE_EX_SLOT, LOADIMAGE_EX_IMG$, LOADIMAGE_EX_COLKEY ); - break; - case FN_ImageFromBuffer: //Sub Procedure - rc_media_createImage_hw( IMAGEFROMBUFFER_SLOT, IMAGEFROMBUFFER_W, IMAGEFROMBUFFER_H, &IMAGEFROMBUFFER_BUFFER ); - break; - case FN_ImageFromBuffer_Ex: //Sub Procedure - rc_media_createImage_Ex_hw( IMAGEFROMBUFFER_EX_SLOT, IMAGEFROMBUFFER_EX_W, IMAGEFROMBUFFER_EX_H, &IMAGEFROMBUFFER_EX_BUFFER, IMAGEFROMBUFFER_EX_COLKEY ); - break; - case FN_BufferFromImage: - rc_media_bufferFromImage(BUFFERFROMIMAGE_SLOT, &BUFFERFROMIMAGE_BUFFER); - break; - case FN_ImageExists: //Number Function - rc_push_num( rc_media_imageExist_hw( IMAGEEXISTS_SLOT ) ); - break; - case FN_ColorKey: //Sub Procedure - rc_media_colorKey_hw( COLORKEY_SLOT, COLORKEY_C ); - break; - case FN_CopyImage: //Sub Procedure - rc_media_copyImage_hw( COPYIMAGE_SRC, COPYIMAGE_DST ); - break; - case FN_DeleteImage: //Sub Procedure - rc_media_deleteImage_hw( DELETEIMAGE_SLOT ); - break; - case FN_SetImageAlpha: //Sub Procedure - rc_media_setImageAlpha_hw( SETIMAGEALPHA_SLOT, SETIMAGEALPHA_A ); - break; - case FN_ImageAlpha: //Number Function - rc_push_num( rc_media_getImageAlpha_hw( IMAGEALPHA_SLOT ) ); - break; - case FN_GetImageSize: //Sub Procedure - rc_media_getImageSize_hw( GETIMAGESIZE_SLOT, &GETIMAGESIZE_W, &GETIMAGESIZE_H ); - break; - case FN_SetImageBlendMode: - rc_push_num(rc_media_setImageBlendMode_hw(SETIMAGEBLENDMODE_SLOT, SETIMAGEBLENDMODE_BLEND_MODE)); - break; - case FN_ImageBlendMode: - rc_push_num(rc_media_imageBlendMode_hw(IMAGEBLENDMODE_SLOT)); - break; - case FN_SetImageColorMod: - rc_push_num(rc_media_setImageColorMod_hw(SETIMAGECOLORMOD_SLOT, SETIMAGECOLORMOD_C)); - break; - case FN_ImageColorMod: - rc_push_num(rc_media_imageColorMod_hw(IMAGECOLORMOD_SLOT)); - break; - case FN_DrawImage: //Sub Procedure - rc_media_drawImage_hw( DRAWIMAGE_SLOT, DRAWIMAGE_X, DRAWIMAGE_Y ); - break; - case FN_DrawImage_Blit: //Sub Procedure - rc_media_drawImage_Clip_hw( DRAWIMAGE_BLIT_SLOT, DRAWIMAGE_BLIT_X, DRAWIMAGE_BLIT_Y, DRAWIMAGE_BLIT_SRC_X, DRAWIMAGE_BLIT_SRC_Y, DRAWIMAGE_BLIT_SRC_W, DRAWIMAGE_BLIT_SRC_H ); - break; - case FN_DrawImage_Blit_Ex: //Sub Procedure - rc_media_drawImage_Blit_hw( DRAWIMAGE_BLIT_EX_SLOT, DRAWIMAGE_BLIT_EX_X, DRAWIMAGE_BLIT_EX_Y, DRAWIMAGE_BLIT_EX_W, DRAWIMAGE_BLIT_EX_H, - DRAWIMAGE_BLIT_EX_SRC_X, DRAWIMAGE_BLIT_EX_SRC_Y, DRAWIMAGE_BLIT_EX_SRC_W, DRAWIMAGE_BLIT_EX_SRC_H ); - break; - case FN_DrawImage_Rotate: //Sub Procedure - rc_media_rotateImage_hw( DRAWIMAGE_ROTATE_SLOT, DRAWIMAGE_ROTATE_X, DRAWIMAGE_ROTATE_Y, DRAWIMAGE_ROTATE_ANGLE ); - break; - case FN_DrawImage_Rotate_Ex: //Sub Procedure - rc_media_rotateImageEX_hw( DRAWIMAGE_ROTATE_EX_SLOT, DRAWIMAGE_ROTATE_EX_X, DRAWIMAGE_ROTATE_EX_Y, DRAWIMAGE_ROTATE_EX_SRC_X, DRAWIMAGE_ROTATE_EX_SRC_Y, - DRAWIMAGE_ROTATE_EX_SRC_W, DRAWIMAGE_ROTATE_EX_SRC_H, DRAWIMAGE_ROTATE_EX_ANGLE ); - break; - case FN_DrawImage_Zoom: //Sub Procedure - rc_media_zoomImage_hw( DRAWIMAGE_ZOOM_SLOT, DRAWIMAGE_ZOOM_X, DRAWIMAGE_ZOOM_Y, DRAWIMAGE_ZOOM_ZX, DRAWIMAGE_ZOOM_ZY ); - break; - case FN_DrawImage_Zoom_Ex: //Sub Procedure - rc_media_zoomImageEX_hw( DRAWIMAGE_ZOOM_EX_SLOT, DRAWIMAGE_ZOOM_EX_X, DRAWIMAGE_ZOOM_EX_Y, DRAWIMAGE_ZOOM_EX_SRC_X, DRAWIMAGE_ZOOM_EX_SRC_Y, - DRAWIMAGE_ZOOM_EX_SRC_W, DRAWIMAGE_ZOOM_EX_SRC_H, DRAWIMAGE_ZOOM_EX_ZX, DRAWIMAGE_ZOOM_EX_ZY ); - break; - case FN_DrawImage_Rotozoom: //Sub Procedure - rc_media_rotozoomImage_hw( DRAWIMAGE_ROTOZOOM_SLOT, DRAWIMAGE_ROTOZOOM_X, DRAWIMAGE_ROTOZOOM_Y, DRAWIMAGE_ROTOZOOM_ANGLE, - DRAWIMAGE_ROTOZOOM_ZX, DRAWIMAGE_ROTOZOOM_ZY ); - break; - case FN_DrawImage_Rotozoom_Ex: //Sub Procedure - rc_media_rotozoomImageEX_hw( DRAWIMAGE_ROTOZOOM_EX_SLOT, DRAWIMAGE_ROTOZOOM_EX_X, DRAWIMAGE_ROTOZOOM_EX_Y, DRAWIMAGE_ROTOZOOM_EX_SRC_X, DRAWIMAGE_ROTOZOOM_EX_SRC_Y, - DRAWIMAGE_ROTOZOOM_EX_SRC_W, DRAWIMAGE_ROTOZOOM_EX_SRC_H, DRAWIMAGE_ROTOZOOM_EX_ANGLE, DRAWIMAGE_ROTOZOOM_EX_ZX, DRAWIMAGE_ROTOZOOM_EX_ZY ); - break; - case FN_DrawImage_Flip: - rc_media_drawImage_Flip( DRAWIMAGE_FLIP_SLOT, DRAWIMAGE_FLIP_X, DRAWIMAGE_FLIP_Y, DRAWIMAGE_FLIP_H, DRAWIMAGE_FLIP_V ); - break; - case FN_DrawImage_Flip_Ex: - rc_media_drawImage_Flip_Ex(DRAWIMAGE_FLIP_EX_SLOT, DRAWIMAGE_FLIP_EX_X, DRAWIMAGE_FLIP_EX_Y, DRAWIMAGE_FLIP_EX_SRC_X, DRAWIMAGE_FLIP_EX_SRC_Y, DRAWIMAGE_FLIP_EX_SRC_W, - DRAWIMAGE_FLIP_EX_SRC_H, DRAWIMAGE_FLIP_EX_H, DRAWIMAGE_FLIP_EX_V); - break; - case FN_InKey: //Number Function - rc_push_num( rc_media_inkey() ); - break; - case FN_Key: //Number Function - rc_push_num( rc_media_key( KEY_KEY_CODE ) ); - break; - case FN_WaitKey: //Number Function - rc_push_num( rc_media_waitKey() ); - break; - case FN_HideMouse: //Sub Procedure - rc_media_hideMouse(); - break; - case FN_ShowMouse: //Sub Procedure - rc_media_showMouse(); - break; - case FN_MouseIsVisible: //Number Function - rc_push_num( rc_media_mouseIsVisible() ); - break; - case FN_GetMouse: //Sub Procedure - rc_media_getMouse( &GETMOUSE_X, &GETMOUSE_Y, &GETMOUSE_MB1, &GETMOUSE_MB2, &GETMOUSE_MB3 ); - break; - case FN_MouseX: //Number Function - rc_push_num( rc_media_mouseX() ); - break; - case FN_MouseY: //Number Function - rc_push_num( rc_media_mouseY() ); - break; - case FN_MouseButton: //Number Function - rc_push_num( rc_media_mouseButton( MOUSEBUTTON_MB ) ); - break; - case FN_GetMouseWheel: //Sub Procedure - rc_media_getMouseWheel( &GETMOUSEWHEEL_X_AXIS, &GETMOUSEWHEEL_Y_AXIS ); - break; - case FN_MouseWheelX: //Number Function - rc_push_num( rc_media_mouseWheelX() ); - break; - case FN_MouseWheelY: //Number Function - rc_push_num( rc_media_mouseWheelY() ); - break; - case FN_SoundFromBuffer: //Sub Procedure - rc_media_createSound( SOUNDFROMBUFFER_SLOT, &SOUNDFROMBUFFER_BUFFER, SOUNDFROMBUFFER_BUFFER_SIZE, SOUNDFROMBUFFER_VOL ); - break; - case FN_LoadSound: //Sub Procedure - rc_media_loadSound( LOADSOUND_SLOT, LOADSOUND_SND_FILE$ ); - break; - case FN_LoadMusic: //Sub Procedure - rc_media_loadMusic( LOADMUSIC_MUSIC_FILE$ ); - break; - case FN_PlaySound: //Sub Procedure - rc_media_playSound( PLAYSOUND_SLOT, PLAYSOUND_CHANNEL, PLAYSOUND_LOOPS ); - break; - case FN_PlaySoundTimed: //Sub Procedure - rc_media_playSoundTimed( PLAYSOUNDTIMED_SLOT, PLAYSOUNDTIMED_CHANNEL, PLAYSOUNDTIMED_LOOPS, PLAYSOUNDTIMED_MS ); - break; - case FN_PlayMusic: //Sub Procedure - rc_media_playMusic( PLAYMUSIC_MLOOPS ); - break; - case FN_PauseSound: //Sub Procedure - rc_media_pauseSound( PAUSESOUND_CHANNEL ); - break; - case FN_ResumeSound: //Sub Procedure - rc_media_resumeSound( RESUMESOUND_CHANNEL ); - break; - case FN_PauseMusic: //Sub Procedure - rc_media_pauseMusic(); - break; - case FN_ResumeMusic: //Sub Procedure - rc_media_resumeMusic(); - break; - case FN_DeleteSound: //Sub Procedure - rc_media_deleteSound( DELETESOUND_SLOT ); - break; - case FN_DeleteMusic: //Sub Procedure - rc_media_deleteMusic(); - break; - case FN_FadeMusicIn: //Sub Procedure - rc_media_fadeMusicIn( FADEMUSICIN_FADE_TIME, FADEMUSICIN_LOOPS ); - break; - case FN_FadeMusicOut: //Sub Procedure - rc_media_fadeMusicOut( FADEMUSICOUT_FADE_TIME ); - break; - case FN_MusicExists: //Number Function - rc_push_num( rc_media_musicExists() ); - break; - case FN_SetMusicVolume: //Sub Procedure - rc_media_setMusicVolume( SETMUSICVOLUME_VOL ); - break; - case FN_MusicVolume: //Number Function - rc_push_num( rc_media_getMusicVolume() ); - break; - case FN_SetMusicPosition: //Sub Procedure - rc_media_setMusicPosition( SETMUSICPOSITION_POS ); - break; - case FN_MusicPosition: //Number Function - rc_push_num( rc_media_getMusicPosition() ); - break; - case FN_RewindMusic: //Sub Procedure - rc_media_rewindMusic(); - break; - case FN_SetSoundChannels: //Sub Procedure - rc_media_setSoundChannels( SETSOUNDCHANNELS_MAX_CHANNELS ); - break; - case FN_NumSoundChannels: //Number Function - rc_push_num( rc_media_getSoundChannels() ); - break; - case FN_SoundIsEnabled: //Number Function - rc_push_num( rc_media_soundIsEnabled() ); - break; - case FN_SoundExists: //Number Function - rc_push_num( rc_media_soundExists( SOUNDEXISTS_SLOT ) ); - break; - case FN_SetChannelVolume: //Sub Procedure - rc_media_setChannelVolume( SETCHANNELVOLUME_CHANNEL, SETCHANNELVOLUME_VOL ); - break; - case FN_ChannelVolume: //Number Function - rc_push_num( rc_media_getChannelVolume( CHANNELVOLUME_CHANNEL ) ); - break; - case FN_SetSoundVolume: //Sub Procedure - rc_media_setSoundVolume( SETSOUNDVOLUME_SLOT, SETSOUNDVOLUME_VOL ); - break; - case FN_SoundVolume: //Number Function - rc_push_num( rc_media_getSoundVolume( SOUNDVOLUME_SLOT ) ); - break; - case FN_StopMusic: //Sub Procedure - rc_media_stopMusic(); - break; - case FN_StopSound: //Sub Procedure - rc_media_stopSound( STOPSOUND_CHANNEL ); - break; - case FN_ChannelIsPlaying: - rc_push_num( rc_media_channelIsPlaying( CHANNELISPLAYING_CHANNEL )); - break; - case FN_ChannelIsPaused: - rc_push_num( rc_media_channelIsPaused( CHANNELISPAUSED_CHANNEL )); - break; - case FN_SetChannelDistance: - rc_push_num( rc_media_setChannelDistance( SETCHANNELDISTANCE_CHANNEL, SETCHANNELDISTANCE_DIST_VALUE ) ); - break; - case FN_SetChannelPanning: - rc_push_num( rc_media_setChannelPanning( SETCHANNELPANNING_CHANNEL, SETCHANNELPANNING_LEFT_VALUE, SETCHANNELPANNING_RIGHT_VALUE ) ); - break; - case FN_NumJoysticks: //Number Function - rc_push_num( rc_media_numJoysticks() ); - break; - case FN_NumJoyAxes: //Number Function - rc_push_num( rc_media_numJoyAxes( NUMJOYAXES_JOY_NUM ) ); - break; - case FN_NumJoyButtons: //Number Function - rc_push_num( rc_media_numJoyButtons( NUMJOYBUTTONS_JOY_NUM ) ); - break; - case FN_NumJoyHats: //Number Function - rc_push_num( rc_media_numJoyHats( NUMJOYHATS_JOY_NUM ) ); - break; - case FN_NumJoyTrackBalls: //Number Function - rc_push_num( rc_media_numJoyTrackBalls( NUMJOYTRACKBALLS_JOY_NUM ) ); - break; - case FN_JoyAxis: //Number Function - rc_push_num( rc_media_joyAxis( JOYAXIS_JOY_NUM, JOYAXIS_JOY_AXIS ) ); - break; - case FN_JoyButton: //Number Function - rc_push_num( rc_media_joyButton( JOYBUTTON_JOY_NUM, JOYBUTTON_JOY_BUTTON ) ); - break; - case FN_JoyHat: //Number Function - rc_push_num( rc_media_joyHat( JOYHAT_JOY_NUM, JOYHAT_JOY_HAT ) ); - break; - case FN_GetJoyTrackBall: //Sub Procedure - rc_media_getJoyTrackBall( GETJOYTRACKBALL_JOY_NUM, GETJOYTRACKBALL_BALL, &GETJOYTRACKBALL_DX, &GETJOYTRACKBALL_DY ); - break; - case FN_JoyName$: //String Function - rc_push_str( rc_media_joystickName( JOYNAME$_JOY_NUM ) ); - break; - case FN_JoystickIsConnected: //Number Function - rc_push_num( rc_media_joystickIsConnected( JOYSTICKISCONNECTED_JOY_NUM ) ); - break; - case FN_GetCursor: //Sub Procedure - rc_media_getCursor( &GETCURSOR_X, &GETCURSOR_Y ); - break; - case FN_PrintS: //Sub Procedure - rc_media_printS_hw( PRINTS_TXT$ ); - break; - case FN_InputS$: //String Function - rc_push_str( rc_media_inputS_hw( INPUTS$_PROMPT$ ) ); - break; - case FN_ZoneInputS$: //String Function - rc_push_str( rc_media_ZoneInputS_hw( ZONEINPUTS$_X, ZONEINPUTS$_Y, ZONEINPUTS$_W, ZONEINPUTS$_H ) ); - break; - case FN_Locate: //Sub Procedure - rc_media_locate( LOCATE_X, LOCATE_Y ); - break; - case FN_ReadInput_Start: //Sub Procedure - rc_media_ReadInput_Start(); - break; - case FN_ReadInput_Stop: //Sub Procedure - rc_media_ReadInput_Stop(); - break; - case FN_ReadInput_Text$: //String Function - rc_push_str( rc_media_ReadInput_Text() ); - break; - case FN_ReadInput_SetText: //Sub Procedure - rc_media_ReadInput_SetText( READINPUT_SETTEXT_TXT$ ); - break; - case FN_ReadInput_ToggleBackspace: //Sub Procedure - rc_media_ReadInput_ToggleBackspace( READINPUT_TOGGLEBACKSPACE_FLAG ); - break; - case FN_LoadFont: //Sub Procedure - rc_media_LoadFont( LOADFONT_SLOT, LOADFONT_FNT_FILE$, LOADFONT_SIZE ); - break; - case FN_DeleteFont: //Sub Procedure - rc_media_DeleteFont( DELETEFONT_SLOT ); - break; - case FN_FontIsLoaded: //Number Function - rc_push_num( rc_media_fontIsLoaded( FONTISLOADED_SLOT ) ); - break; - case FN_Font: //Sub Procedure - rc_media_font( FONT_SLOT ); - break; - case FN_SetFontStyle: //Sub Procedure - rc_media_setFontStyle( SETFONTSTYLE_SLOT, SETFONTSTYLE_STYLE ); - break; - case FN_DrawText: //Sub Procedure - rc_media_drawText_hw( DRAWTEXT_TXT$, DRAWTEXT_X, DRAWTEXT_Y ); - break; - case FN_DrawText_Shaded: //Sub Procedure - rc_media_drawText_shaded_hw( DRAWTEXT_SHADED_TXT$, DRAWTEXT_SHADED_X, DRAWTEXT_SHADED_Y, DRAWTEXT_SHADED_FG_COLOR, DRAWTEXT_SHADED_BG_COLOR ); - break; - case FN_DrawText_Blended: //Sub Procedure - rc_media_drawText_blended_hw( DRAWTEXT_BLENDED_TXT$, DRAWTEXT_BLENDED_X, DRAWTEXT_BLENDED_Y ); - break; - case FN_RenderText: //Sub Procedure - rc_media_GetRenderedText_hw( RENDERTEXT_SLOT, RENDERTEXT_TXT$ ); - break; - case FN_GetTextSize: //Sub Procedure - rc_media_getTextSize( GETTEXTSIZE_SLOT, GETTEXTSIZE_TXT$, &GETTEXTSIZE_W, &GETTEXTSIZE_H ); - break; - case FN_TouchPressure: //Number Function - rc_push_num( rc_media_touchPressure() ); - break; - case FN_GetTouch: //Sub Procedure - rc_media_getTouch( &GETTOUCH_STATUS, &GETTOUCH_X, &GETTOUCH_Y, &GETTOUCH_DX, &GETTOUCH_DY ); - break; - case FN_GetMultiTouch: //Sub Procedure - rc_media_getMultiTouch( &GETMULTITOUCH_STATUS, &GETMULTITOUCH_X, &GETMULTITOUCH_Y, &GETMULTITOUCH_FINGERS, &GETMULTITOUCH_DIST, &GETMULTITOUCH_THETA ); - break; - case FN_GetTouchFinger: //Sub Procedure - rc_media_getTouchFinger( GETTOUCHFINGER_FINGER, &GETTOUCHFINGER_X, &GETTOUCHFINGER_Y, &GETTOUCHFINGER_PRESSURE ); - break; - case FN_NumFingers: //Number Function - rc_push_num( rc_media_numFingers() ); - break; - case FN_CheckSockets: - rc_push_num( rc_net_checkSockets( CHECKSOCKETS_TIMEOUT_MS ) ); - break; - case FN_TCP_SocketReady: - rc_push_num( rc_net_tcp_socketReady( TCP_SOCKETREADY_SOCKET ) ); - break; - case FN_UDP_SocketReady: - rc_push_num( rc_net_udp_socketReady( UDP_SOCKETREADY_SOCKET ) ); - break; - case FN_TCP_SocketOpen: //Number Function - rc_push_num( rc_net_tcp_openSocket(TCP_SOCKETOPEN_SOCKET, TCP_SOCKETOPEN_HOST$, TCP_SOCKETOPEN_PORT ) ); - break; - case FN_TCP_SocketClose: //Sub Procedure - rc_net_tcp_closeSocket( TCP_SOCKETCLOSE_SOCKET ); - break; - case FN_TCP_RemoteHost: //Number Function - rc_push_num( rc_net_tcp_remoteHost( TCP_REMOTEHOST_SOCKET ) ); - break; - case FN_TCP_RemotePort: //Number Function - rc_push_num( rc_net_tcp_remotePort( TCP_REMOTEPORT_SOCKET ) ); - break; - case FN_TCP_GetData: //Number Function - rc_push_num( rc_net_tcp_getData_str( TCP_GETDATA_SOCKET, &TCP_GETDATA_SDATA$, TCP_GETDATA_NUMBYTES ) ); - break; - case FN_TCP_SendData: //Sub Procedure - rc_net_tcp_sendData( TCP_SENDDATA_SOCKET, TCP_SENDDATA_SDATA$.c_str(), TCP_SENDDATA_SDATA$.length() ); - break; - case FN_TCP_AcceptSocket: //Number Function - rc_push_num( rc_net_tcp_acceptSocket( TCP_ACCEPTSOCKET_SERVER, TCP_ACCEPTSOCKET_CLIENT ) ); - break; - case FN_UDP_SocketOpen: //Number Function - rc_push_num( rc_net_udp_openSocket( UDP_SOCKETOPEN_SOCKET, UDP_SOCKETOPEN_PORT ) ); - break; - case FN_UDP_SocketClose: //Sub Procedure - rc_push_num(rc_net_udp_closeSocket( UDP_SOCKETCLOSE_SOCKET )); - break; - case FN_UDP_GetData: //Number Function - rc_push_num( rc_net_udp_readStream( UDP_GETDATA_SOCKET, &UDP_GETDATA_SDATA$, &UDP_GETDATA_HOST$, &UDP_GETDATA_PORT ) ); - break; - case FN_UDP_Length: //Number Function - rc_push_num( rc_net_udp_len()); - break; - case FN_UDP_MaxLength: //Number Function - rc_push_num( rc_net_udp_maxlen() ); - break; - case FN_UDP_RemoteHost$: //String Function - rc_push_str( rc_net_udp_getRemoteHost( UDP_REMOTEHOST$_SOCKET ) ); - break; - case FN_UDP_RemotePort: //Number Function - rc_push_num( rc_net_udp_getRemotePort( UDP_REMOTEPORT_SOCKET ) ); - break; - case FN_UDP_SendData: //Sub Procedure - rc_net_udp_sendData( UDP_SENDDATA_SOCKET, UDP_SENDDATA_HOST$, UDP_SENDDATA_PORT, UDP_SENDDATA_SDATA$ ); - break; - case FN_LoadVideo: //Sub Procedure - rc_media_loadVideo( LOADVIDEO_VID$ ); - break; - case FN_PlayVideo: //Sub Procedure - rc_media_playVideo( PLAYVIDEO_VLOOPS ); - break; - case FN_PauseVideo: //Sub Procedure - rc_media_pauseVideo(); - break; - case FN_StopVideo: //Sub Procedure - rc_media_stopVideo(); - break; - case FN_SetVideoPosition: //Sub Procedure - rc_media_setVideoPosition( SETVIDEOPOSITION_POS ); - break; - case FN_ResumeVideo: //Sub Procedure - rc_media_resumeVideo(); - break; - case FN_VideoPosition: //Number Function - rc_push_num( rc_media_videoPosition() ); - break; - case FN_DeleteVideo: //Sub Procedure - rc_media_deleteVideo(); - break; - case FN_VideoIsPlaying: //Number Function - rc_push_num( rc_media_videoIsPlaying() ); - break; - case FN_VideoEnd: //Number Function - rc_push_num( rc_media_videoEnd() ); - break; - case FN_GetVideoStats: //Sub Procedure - rc_media_getVideoStats( GETVIDEOSTATS_VFILE$, &GETVIDEOSTATS_VLEN, &GETVIDEOSTATS_VFPS, &GETVIDEOSTATS_FRAME_W, &GETVIDEOSTATS_FRAME_H ); - break; - case FN_SetVideoDrawRect: //Sub Procedure - rc_media_setVideoDrawRect( SETVIDEODRAWRECT_X, SETVIDEODRAWRECT_Y, SETVIDEODRAWRECT_W, SETVIDEODRAWRECT_H ); - break; - case FN_GetVideoDrawRect: //Sub Procedure - rc_media_getVideoDrawRect( &GETVIDEODRAWRECT_X, &GETVIDEODRAWRECT_Y, &GETVIDEODRAWRECT_W, &GETVIDEODRAWRECT_H ); - break; - case FN_GetVideoSize: //Sub Procedure - rc_media_getVideoSize( &GETVIDEOSIZE_W, &GETVIDEOSIZE_H ); - break; - case FN_VideoExists: //Number Function - rc_push_num( rc_media_videoExists() ); - break; - case FN_SetVideoAlpha: //Sub Procedure - rc_media_setVideoAlpha( SETVIDEOALPHA_A ); - break; - case FN_System: //Number Function - rc_push_num( rc_intern_system( SYSTEM_CMD$ ) ); - break; - case FN_OS$: //String Function - rc_push_str( rc_intern_OS()); - break; - case FN_Command$: //String Function - rc_push_str( rc_intern_command( COMMAND$_ARG ) ); - break; - case FN_NumCommands: //Number Function - rc_push_num( rc_intern_numCommands() ); - break; - case FN_Env$: //String Function - rc_push_str( rc_intern_env( ENV$_V$ ) ); - break; - case FN_SetEnv: //Sub Procedure - rc_intern_setEnv( SETENV_VAR$, SETENV_VALUE$, SETENV_OVERWRITE ); - break; - case FN_PrefPath$: //String Function - rc_push_str( rc_intern_prefPath( PREFPATH$_ORG_NAME$, PREFPATH$_APP_NAME$ ) ); - break; - case FN_ClipboardText$: - rc_push_str( rc_media_getClipboardText() ); - break; - case FN_SetClipboardText: - rc_media_setClipboardText( SETCLIPBOARDTEXT_TXT$ ); - break; - case FN_HasClipboardText: - rc_push_num( rc_media_hasClipboardText() ); - break; - case FN_Android_GetExternalStoragePath$: - rc_push_str( rc_intern_android_getExternalStoragePath() ); - break; - case FN_Android_GetExternalStorageState: - rc_push_num( rc_intern_android_getExternalStorageState() ); - break; - case FN_Android_GetInternalStoragePath$: - rc_push_str( rc_intern_android_getInternalStoragePath() ); - break; - case FN_Android_JNI_Message$: - rc_push_str( rc_intern_android_jni_message( ANDROID_JNI_MESSAGE$_ARG$ )); - break; - case FN_Runtime_Utility_Message$: - rc_push_str( rc_intern_runtime_utility( RUNTIME_UTILITY_MESSAGE$_ARG$ )); - break; - case FN_GetDesktopDisplayMode: //Sub Procedure - rc_media_getDesktopDisplayMode( GETDESKTOPDISPLAYMODE_INDEX, &GETDESKTOPDISPLAYMODE_W, &GETDESKTOPDISPLAYMODE_H, &GETDESKTOPDISPLAYMODE_FREQ); - break; - case FN_DrawImage_Transform: //Sub Procedure - rc_media_drawImage_Transform(DRAWIMAGE_TRANSFORM_SLOT, DRAWIMAGE_TRANSFORM_X, DRAWIMAGE_TRANSFORM_Y, DRAWIMAGE_TRANSFORM_W, DRAWIMAGE_TRANSFORM_H, - DRAWIMAGE_TRANSFORM_SRC_X, DRAWIMAGE_TRANSFORM_SRC_Y, DRAWIMAGE_TRANSFORM_W, DRAWIMAGE_TRANSFORM_H, DRAWIMAGE_TRANSFORM_ANGLE, - DRAWIMAGE_TRANSFORM_CENTER_X, DRAWIMAGE_TRANSFORM_CENTER_Y, DRAWIMAGE_TRANSFORM_FLIP_H, DRAWIMAGE_TRANSFORM_FLIP_V); - break; - case FN_GetPowerInfo: //Sub Procedure - rc_intern_getPowerInfo(&GETPOWERINFO_STATUS, &GETPOWERINFO_SECS, &GETPOWERINFO_PCT); - break; - case FN_SystemRam: //Number Function - rc_push_num( rc_intern_systemRam() ); - break; - case FN_SetRenderScaleQuality: //Number Function - rc_push_num( rc_media_setRenderScaleQuality((int)SETRENDERSCALEQUALITY_N) ); - break; - case FN_EvalJS$: //String Function - rc_push_str( rc_intern_evalJS( EVALJS$_JS_CODE$) ); - break; - case FN_GetRenderScaleQuality: //Number Function - rc_push_num( rc_media_getRenderScaleQuality() ); - break; - case FN_GetGlobalMouse: //Sub Procedure - rc_media_getGlobalMouse(&GETGLOBALMOUSE_X, &GETGLOBALMOUSE_Y, &GETGLOBALMOUSE_MB1, &GETGLOBALMOUSE_MB2, &GETGLOBALMOUSE_MB3); - break; - case FN_GlobalMouseX: //Number Function - rc_push_num( rc_media_globalMouseX() ); - break; - case FN_GlobalMouseY: //Number Function - rc_push_num( rc_media_globalMouseY() ); - break; - case FN_GetAccel: //Sub Procedure - rc_media_getAccel( GETACCEL_ACCEL_NUM, &GETACCEL_X, &GETACCEL_Y, &GETACCEL_Z ); - break; - case FN_AccelName$: //String Function - rc_push_str( rc_media_accelName( ACCELNAME$_ACCEL_NUM ) ); - break; - case FN_NumAccels: //Number Function - rc_push_num( rc_media_numAccels() ); - break; - case FN_GetGyro: //Sub Procedure - rc_media_getGyro( GETGYRO_GYRO_NUM, &GETGYRO_X, &GETGYRO_Y, &GETGYRO_Z ); - break; - case FN_GyroName$: //String Function - rc_push_str( rc_media_gyroName( GYRONAME$_GYRO_NUM )); - break; - case FN_NumGyros: //Number Function - rc_push_num( rc_media_numGyros() ); - break; - case FN_JoyRumblePlay: //Sub Procedure - rc_media_joyRumblePlay( JOYRUMBLEPLAY_JOY_NUM, JOYRUMBLEPLAY_STRENGTH, JOYRUMBLEPLAY_DURATION ); - break; - case FN_JoyRumbleStop: //Sub Procedure - rc_media_joyRumbleStop( JOYRUMBLESTOP_JOY_NUM ); - break; - case FN_JoystickIsHaptic: //Number Function - rc_push_num( rc_media_joystickIsHaptic( JOYSTICKISHAPTIC_JOY_NUM ) ); - break; - case FN_WriteByteBuffer: //Number Function - rc_push_num( rc_intern_fileWriteByteBuffer( WRITEBYTEBUFFER_STREAM, &WRITEBYTEBUFFER_BUF, WRITEBYTEBUFFER_BUF_SIZE ) ); - break; - case FN_ReadByteBuffer: //Number Function - rc_push_num( rc_intern_fileReadByteBuffer( READBYTEBUFFER_STREAM, &READBYTEBUFFER_BUF, READBYTEBUFFER_BUF_SIZE ) ); - break; - case FN_WindowEvent_Resize: //Number Function - rc_push_num( rc_media_windowEvent_Resize( WINDOWEVENT_RESIZE_WIN ) ); - break; - case FN_SetWindowAutoClose: //Sub Procedure - rc_media_windowEvent_setExitOnClose( SETWINDOWAUTOCLOSE_WIN, SETWINDOWAUTOCLOSE_EXIT_ON_CLOSE ); - break; - case FN_SetWindowResizable: - rc_media_setWindowResizable(SETWINDOWRESIZABLE_WIN, SETWINDOWRESIZABLE_FLAG); - break; - case FN_SystemReturnStdOut$: - rc_push_str( rc_intern_sysReturnOutput(SYSTEMRETURNSTDOUT$_CMD$) ); - break; - case FN_WindowMode: - rc_push_num( rc_media_windowMode(WINDOWMODE_VISIBLE, WINDOWMODE_FULLSCREEN, WINDOWMODE_RESIZABLE, WINDOWMODE_BORDERLESS, WINDOWMODE_HIGHDPI) ); - break; - case FN_WindowFlags: - rc_push_num( rc_media_windowFlags(WINDOWFLAGS_WIN) ); - break; - case FN_RestoreWindow: - rc_media_restoreWindow(RESTOREWINDOW_WIN); - break; - case FN_UpdateAllWindows: - rc_events(); - rc_media_updateAllWindow_hw(); - #ifdef RC_WEB - emscripten_sleep(0); - #else - SDL_Delay(0); - #endif // RC_WEB - break; - case FN_QueryAudioSpec: - rc_push_num( rc_media_queryAudioSpec(&QUERYAUDIOSPEC_FREQ, &QUERYAUDIOSPEC_FORMAT, &QUERYAUDIOSPEC_CHANNELS) ); - break; - case FN_MusicIsPlaying: - rc_push_num( rc_media_musicIsPlaying() ); - break; - case FN_DrawGeometry: //Number Function - #ifdef RC_WEB - rc_push_num(0); - #else - rc_push_num( rc_media_drawGeometry(DRAWGEOMETRY_SLOT, DRAWGEOMETRY_NUM_VERTICES, &DRAWGEOMETRY_VERTICES, DRAWGEOMETRY_NUM_INDICES, &DRAWGEOMETRY_INDICES) ); - #endif // RC_WEB - break; - case FN_Size: //Number Function - rc_push_num(rc_intern_size(SIZE_S$)); - break; - case FN_BufferFromString: //Number Function - rc_push_num(rc_intern_bufferFromString(BUFFERFROMSTRING_S$, &BUFFERFROMSTRING_BUFFER)); - break; - case FN_StringFromBuffer$: //String Function - rc_push_str( rc_intern_stringFromBuffer(&STRINGFROMBUFFER$_BUFFER, STRINGFROMBUFFER$_BUFFER_SIZE) ); - break; - case FN_GrabInput: //Sub Procedure - rc_media_grabInput(GRABINPUT_FLAG); - break; - case FN_GrabbedWindow: //Number Function - rc_push_num( rc_media_grabbedWindow() ); - break; - case FN_WarpMouse: //Sub Procedure - rc_media_warpMouse(WARPMOUSE_X, WARPMOUSEGLOBAL_Y); - break; - case FN_WarpMouseGlobal: //Sub Procedure - rc_media_warpMouseGlobal(WARPMOUSEGLOBAL_X, WARPMOUSEGLOBAL_Y); - break; - case FN_SetMouseZone: //Sub Procedure - rc_media_setMouseZone(SETMOUSEZONE_X, SETMOUSEZONE_Y, SETMOUSEZONE_W, SETMOUSEZONE_H); - break; - case FN_ClearMouseZone: //Sub Procedure - rc_media_clearMouseZone(); - break; - case FN_SetWindowAlwaysOnTop: //Sub Procedure - rc_media_setWindowAlwaysOnTop(SETWINDOWALWAYSONTOP_WIN, SETWINDOWALWAYSONTOP_FLAG); - break; - case FN_SetMouseRelative: //Sub Procedure - rc_media_setMouseRelative(SETMOUSERELATIVE_FLAG); - break; - case FN_SetWindowVSync: //Sub Procedure - rc_media_setWindowVSync(SETWINDOWVSYNC_WIN, SETWINDOWVSYNC_FLAG); - break; - case FN_OpenURL: //Number Function - rc_push_num( rc_media_openURL(OPENURL_URL$)); - break; - case FN_APIVersion$: //String Function - rc_push_str( rc_media_APIVersion() ); - break; - case FN_FlashWindow: //Number Function - rc_push_num( rc_media_flashWindow(FLASHWINDOW_WIN)); - break; - case FN_MessageBox: //Number Function - rc_push_num( rc_media_messageBox(MESSAGEBOX_TITLE$, MESSAGEBOX_MSG$)); - break; - case FN_NumberArrayCopy: //Sub Procedure - rc_number_array_copy( &num_var[0], &num_var[1]); - arr_ref_id.clear(); - break; - case FN_StringArrayCopy: //Sub Procedure - rc_string_array_copy( &str_var[0], &str_var[1]); - arr_ref_id.clear(); - break; - case FN_NumberArrayFill: //Sub Procedure - rc_number_array_fill( &num_var[0], NUMBERARRAYFILL_FDATA); - arr_ref_id.clear(); - break; - case FN_StringArrayFill: //Sub Procedure - rc_string_array_fill( &str_var[0], STRINGARRAYFILL_FDATA$); - arr_ref_id.clear(); - break; - case FN_Runtime$: //String Function - rc_push_str( rcbasic_runtime_path ); - break; - - - case FN_DimMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - DimMatrix(DIMMATRIX_M, DIMMATRIX_M_ROWS, DIMMATRIX_M_COLS, DIMMATRIX_PRESERVE_FLAG); - else - ProcessQueueMatrixOp(FN_DimMatrix, DIMMATRIX_M, DIMMATRIX_M_ROWS, DIMMATRIX_M_COLS, DIMMATRIX_PRESERVE_FLAG); - break; - case FN_AddMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(AddMatrix(ADDMATRIX_MA, ADDMATRIX_MB, ADDMATRIX_MC)); - else - { - ProcessQueueMatrixOp(FN_AddMatrix, ADDMATRIX_MA, ADDMATRIX_MB, ADDMATRIX_MC); - rc_push_num(1); - } - break; - case FN_AugmentMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(AugmentMatrix(AUGMENTMATRIX_MA, AUGMENTMATRIX_MB, AUGMENTMATRIX_MC)); - else - { - ProcessQueueMatrixOp(FN_AugmentMatrix, AUGMENTMATRIX_MA, AUGMENTMATRIX_MB, AUGMENTMATRIX_MC); - rc_push_num(1); - } - break; - case FN_CopyMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - CopyMatrix(COPYMATRIX_MA, COPYMATRIX_MB); - else - ProcessQueueMatrixOp(FN_CopyMatrix, COPYMATRIX_MA, COPYMATRIX_MB); - break; - case FN_InsertMatrixColumns: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(InsertMatrixColumn(INSERTMATRIXCOLUMNS_MA, INSERTMATRIXCOLUMNS_C, INSERTMATRIXCOLUMNS_NUM_COLS)); - else - { - ProcessQueueMatrixOp(FN_InsertMatrixColumns, INSERTMATRIXCOLUMNS_MA, INSERTMATRIXCOLUMNS_C, INSERTMATRIXCOLUMNS_NUM_COLS); - rc_push_num(1); - } - break; - case FN_InsertMatrixRows: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(InsertMatrixRow(INSERTMATRIXROWS_MA, INSERTMATRIXROWS_R, INSERTMATRIXROWS_NUM_ROWS)); - else - { - ProcessQueueMatrixOp(FN_InsertMatrixRows, INSERTMATRIXROWS_MA, INSERTMATRIXROWS_R, INSERTMATRIXROWS_NUM_ROWS); - rc_push_num(1); - } - break; - case FN_MultiplyMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(MultiplyMatrix(MULTIPLYMATRIX_MA, MULTIPLYMATRIX_MB, MULTIPLYMATRIX_MC)); - else - { - ProcessQueueMatrixOp(FN_MultiplyMatrix, MULTIPLYMATRIX_MA, MULTIPLYMATRIX_MB, MULTIPLYMATRIX_MC); - rc_push_num(1); - } - break; - case FN_CubeMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(CubeMatrix(CUBEMATRIX_MA, CUBEMATRIX_MB, rc_active_matrix_process)); - else - { - ProcessQueueMatrixOp(FN_CubeMatrix, CUBEMATRIX_MA, CUBEMATRIX_MB); - rc_push_num(1); - } - break; - case FN_DeleteMatrixColumns: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(DeleteMatrixColumns(DELETEMATRIXCOLUMNS_MA, DELETEMATRIXCOLUMNS_C, DELETEMATRIXCOLUMNS_NUM_COLS, rc_active_matrix_process)); - else - { - ProcessQueueMatrixOp(FN_DeleteMatrixColumns, DELETEMATRIXCOLUMNS_MA, DELETEMATRIXCOLUMNS_C, DELETEMATRIXCOLUMNS_NUM_COLS); - rc_push_num(1); - } - break; - case FN_DeleteMatrixRows: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(DeleteMatrixRows(DELETEMATRIXROWS_MA, DELETEMATRIXROWS_R, DELETEMATRIXROWS_NUM_ROWS)); - else - { - ProcessQueueMatrixOp(FN_DeleteMatrixRows, DELETEMATRIXROWS_MA, DELETEMATRIXROWS_R, DELETEMATRIXROWS_NUM_ROWS); - rc_push_num(1); - } - break; - case FN_ClearMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - ClearMatrix(CLEARMATRIX_MA); - else - ProcessQueueMatrixOp(FN_ClearMatrix, CLEARMATRIX_MA); - break; - case FN_ClearMatrixColumns: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(ClearMatrixColumns(CLEARMATRIXCOLUMNS_MA, CLEARMATRIXCOLUMNS_C, CLEARMATRIXCOLUMNS_NUM_COLS)); - else - { - ProcessQueueMatrixOp(FN_ClearMatrixColumns, CLEARMATRIXCOLUMNS_MA, CLEARMATRIXCOLUMNS_C, CLEARMATRIXCOLUMNS_NUM_COLS); - rc_push_num(1); - } - break; - case FN_ClearMatrixRows: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(ClearMatrixRows(CLEARMATRIXROWS_MA, CLEARMATRIXROWS_R, CLEARMATRIXROWS_NUM_ROWS)); - else - { - ProcessQueueMatrixOp(FN_ClearMatrixRows, CLEARMATRIXROWS_MA, CLEARMATRIXROWS_R, CLEARMATRIXROWS_NUM_ROWS); - rc_push_num(1); - } - break; - case FN_FillMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - FillMatrix(FILLMATRIX_MA, FILLMATRIX_V); - else - ProcessQueueMatrixOp(FN_FillMatrix, FILLMATRIX_MA, FILLMATRIX_V); - break; - case FN_FillMatrixColumns: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(FillMatrixColumns(FILLMATRIXCOLUMNS_MA, FILLMATRIXCOLUMNS_C, FILLMATRIXCOLUMNS_NUM_COLS, FILLMATRIXCOLUMNS_V)); - else - { - ProcessQueueMatrixOp(FN_FillMatrixColumns, FILLMATRIXCOLUMNS_MA, FILLMATRIXCOLUMNS_C, FILLMATRIXCOLUMNS_NUM_COLS, FILLMATRIXCOLUMNS_V); - rc_push_num(1); - } - break; - case FN_FillMatrixRows: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(FillMatrixRows(FILLMATRIXROWS_MA, FILLMATRIXROWS_R, FILLMATRIXROWS_NUM_ROWS, FILLMATRIXROWS_V)); - else - { - ProcessQueueMatrixOp(FN_FillMatrixRows, FILLMATRIXROWS_MA, FILLMATRIXROWS_R, FILLMATRIXROWS_NUM_ROWS, FILLMATRIXROWS_V); - rc_push_num(1); - } - break; - case FN_CopyMatrixColumns: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(GetMatrixColumns(COPYMATRIXCOLUMNS_MA, COPYMATRIXCOLUMNS_MB, COPYMATRIXCOLUMNS_C, COPYMATRIXCOLUMNS_NUM_COLS)); - else - { - ProcessQueueMatrixOp(FN_CopyMatrixColumns, COPYMATRIXCOLUMNS_MA, COPYMATRIXCOLUMNS_MB, COPYMATRIXCOLUMNS_C, COPYMATRIXCOLUMNS_NUM_COLS); - rc_push_num(1); - } - break; - case FN_CopyMatrixRows: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(GetMatrixRows(COPYMATRIXROWS_MA, COPYMATRIXROWS_MB, COPYMATRIXROWS_R, COPYMATRIXROWS_NUM_ROWS)); - else - { - ProcessQueueMatrixOp(FN_CopyMatrixRows, COPYMATRIXROWS_MA, COPYMATRIXROWS_MB, COPYMATRIXROWS_R, COPYMATRIXROWS_NUM_ROWS); - rc_push_num(1); - } - break; - case FN_IdentityMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - IdentityMatrix(IDENTITYMATRIX_MA, IDENTITYMATRIX_N); - else - ProcessQueueMatrixOp(FN_IdentityMatrix, IDENTITYMATRIX_MA, IDENTITYMATRIX_N); - break; - case FN_SolveMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(SolveMatrix(SOLVEMATRIX_MA, SOLVEMATRIX_MB, SOLVEMATRIX_MC)); - else - { - ProcessQueueMatrixOp(FN_SolveMatrix, SOLVEMATRIX_MA, SOLVEMATRIX_MB, SOLVEMATRIX_MC); - rc_push_num(1); - } - break; - - //MAIN THREAD ONLY - case FN_IsEqualMatrix: //Number Function - rc_push_num(IsEqualMatrix(ISEQUALMATRIX_MA, ISEQUALMATRIX_MB, ISEQUALMATRIX_TOLERANCE)); - break; - - //MAIN THREAD ONLY - case FN_Determinant: //Number Function - rc_push_num(Determinant(DETERMINANT_MA)); - break; - - case FN_AdjointMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(AdjointMatrix(ADJOINTMATRIX_MA, ADJOINTMATRIX_MB)); - else - { - ProcessQueueMatrixOp(FN_AdjointMatrix, ADJOINTMATRIX_MA, ADJOINTMATRIX_MB); - rc_push_num(1); - } - break; - case FN_InvertMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(InvertMatrix(INVERTMATRIX_MA, INVERTMATRIX_MB)); - else - { - ProcessQueueMatrixOp(FN_InvertMatrix, INVERTMATRIX_MA, INVERTMATRIX_MB); - rc_push_num(1); - } - break; - - //MAIN THREAD ONLY - case FN_MatrixFromBuffer: //Sub Procedure - MatrixFromBuffer(MATRIXFROMBUFFER_MA, MATRIXFROMBUFFER_R, MATRIXFROMBUFFER_C, &MATRIXFROMBUFFER_BUFFER); - break; - - //MAIN THREAD ONLY - case FN_GetMatrix: //Sub Procedure - BufferFromMatrix(&GETMATRIX_BUFFER, GETMATRIX_MA); - break; - - case FN_RandomizeMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - RandomizeMatrix(RANDOMIZEMATRIX_MA, RANDOMIZEMATRIX_VMIN, RANDOMIZEMATRIX_VMAX); - else - ProcessQueueMatrixOp(FN_RandomizeMatrix, RANDOMIZEMATRIX_MA, RANDOMIZEMATRIX_VMIN, RANDOMIZEMATRIX_VMAX); - break; - - //MAIN THREAD ONLY - case FN_MatrixValue: //Number Function - rc_push_num(MatrixValue(MATRIXVALUE_MA, MATRIXVALUE_R, MATRIXVALUE_C)); - break; - - case FN_SetMatrixValue: //Sub Procedure - if(rc_active_matrix_process < 0) - SetMatrixValue(SETMATRIXVALUE_MA, SETMATRIXVALUE_R, SETMATRIXVALUE_C, SETMATRIXVALUE_V); - else - ProcessQueueMatrixOp(FN_SetMatrixValue, SETMATRIXVALUE_MA, SETMATRIXVALUE_R, SETMATRIXVALUE_C, SETMATRIXVALUE_V); - break; - case FN_ScalarMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - ScalarMatrix(SCALARMATRIX_MA, SCALARMATRIX_MB, SCALARMATRIX_S_VALUE); - else - ProcessQueueMatrixOp(FN_ScalarMatrix, SCALARMATRIX_MA, SCALARMATRIX_MB, SCALARMATRIX_S_VALUE); - break; - case FN_ScalarMatrixColumns: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(ScalarMatrixColumns(SCALARMATRIXCOLUMNS_MA, SCALARMATRIXCOLUMNS_MB, SCALARMATRIXCOLUMNS_C, SCALARMATRIXCOLUMNS_NUM_COLS, SCALARMATRIXCOLUMNS_S_VALUE)); - else - { - ProcessQueueMatrixOp(FN_ScalarMatrixColumns, SCALARMATRIXCOLUMNS_MA, SCALARMATRIXCOLUMNS_MB, SCALARMATRIXCOLUMNS_C, SCALARMATRIXCOLUMNS_NUM_COLS, SCALARMATRIXCOLUMNS_S_VALUE); - rc_push_num(1); - } - break; - case FN_ScalarMatrixRows: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(ScalarMatrixRows(SCALARMATRIXROWS_MA, SCALARMATRIXROWS_MB, SCALARMATRIXROWS_R, SCALARMATRIXROWS_NUM_ROWS, SCALARMATRIXROWS_S_VALUE)); - else - { - ProcessQueueMatrixOp(FN_ScalarMatrixRows, SCALARMATRIXROWS_MA, SCALARMATRIXROWS_MB, SCALARMATRIXROWS_R, SCALARMATRIXROWS_NUM_ROWS, SCALARMATRIXROWS_S_VALUE); - rc_push_num(1); - } - break; - case FN_SquareMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(SquareMatrix(SQUAREMATRIX_MA, SQUAREMATRIX_MB)); - else - { - ProcessQueueMatrixOp(FN_SquareMatrix, SQUAREMATRIX_MA, SQUAREMATRIX_MB); - rc_push_num(1); - } - break; - case FN_SubMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - SubMatrix(SUBMATRIX_MA, SUBMATRIX_R, SUBMATRIX_C); - else - ProcessQueueMatrixOp(FN_SubMatrix, SUBMATRIX_MA, SUBMATRIX_R, SUBMATRIX_C); - break; - case FN_SubtractMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(SubtractMatrix(SUBTRACTMATRIX_MA, SUBTRACTMATRIX_MB, SUBTRACTMATRIX_MC)); - else - { - ProcessQueueMatrixOp(FN_SubtractMatrix, SUBTRACTMATRIX_MA, SUBTRACTMATRIX_MB, SUBTRACTMATRIX_MC); - rc_push_num(1); - } - break; - case FN_SwapMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - SwapMatrix(SWAPMATRIX_MA, SWAPMATRIX_MB, rc_active_matrix_process); - else - ProcessQueueMatrixOp(FN_SwapMatrix, SWAPMATRIX_MA, SWAPMATRIX_MB); - break; - case FN_SwapMatrixColumn: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(SwapMatrixColumn(SWAPMATRIXCOLUMN_MA, SWAPMATRIXCOLUMN_C1, SWAPMATRIXCOLUMN_C2)); - else - { - ProcessQueueMatrixOp(FN_SwapMatrixColumn, SWAPMATRIXCOLUMN_MA, SWAPMATRIXCOLUMN_C1, SWAPMATRIXCOLUMN_C2); - rc_push_num(1); - } - break; - case FN_SwapMatrixRow: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(SwapMatrixRow(SWAPMATRIXROW_MA, SWAPMATRIXROW_R1, SWAPMATRIXROW_R2)); - else - { - ProcessQueueMatrixOp(FN_SwapMatrixRow, SWAPMATRIXROW_MA, SWAPMATRIXROW_R1, SWAPMATRIXROW_R2); - rc_push_num(1); - } - break; - case FN_TransposeMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(TransposeMatrix(TRANSPOSEMATRIX_MA, TRANSPOSEMATRIX_MB)); - else - { - ProcessQueueMatrixOp(FN_TransposeMatrix, TRANSPOSEMATRIX_MA, TRANSPOSEMATRIX_MB); - rc_push_num(1); - } - break; - case FN_UnAugmentMatrix: //Number Function - if(rc_active_matrix_process < 0) - rc_push_num(UnAugmentMatrix(UNAUGMENTMATRIX_MA, UNAUGMENTMATRIX_MB, UNAUGMENTMATRIX_MC)); - else - { - ProcessQueueMatrixOp(FN_UnAugmentMatrix, UNAUGMENTMATRIX_MA, UNAUGMENTMATRIX_MB, UNAUGMENTMATRIX_MC); - rc_push_num(1); - } - break; - case FN_ZeroMatrix: //Sub Procedure - if(rc_active_matrix_process < 0) - ZeroMatrix(ZEROMATRIX_MA); - else - ProcessQueueMatrixOp(FN_ZeroMatrix, ZEROMATRIX_MA); - break; - - //MAIN THREAD ONLY - case FN_GetMatrixSize: //Sub Procedure - GetMatrixSize(GETMATRIXSIZE_MA, &GETMATRIXSIZE_R, &GETMATRIXSIZE_C); - break; - - case FN_SetMatrixProcess: //Number Function - rc_push_num(rc_setMatrixProcess(SETMATRIXPROCESS_P_NUM)); - break; - case FN_ProcessOpen: //Number Function - rc_push_num(rc_processOpen(PROCESSOPEN_P_NUM)); - break; - case FN_SetProcessErrorMode: //Sub Procedure - rc_setProcessErrorMode(SETPROCESSERRORMODE_P_NUM, SETPROCESSERRORMODE_ERROR_MODE); - break; - case FN_ProcessError: //Number Function - rc_push_num(ProcessError(PROCESSERROR_P_NUM)); - break; - case FN_ProcessWait: //Sub Procedure - ProcessWait(PROCESSWAIT_P_NUM); - break; - case FN_ProcessWaitAll: //Sub Procedure - ProcessWaitAll(); - break; - case FN_ProcessContinue: //Sub Procedure - ProcessContinue(PROCESSCONTINUE_P_NUM); - break; - case FN_ProcessStop: //Sub Procedure - ProcessStop(PROCESSSTOP_P_NUM); - break; - case FN_ProcessClear: //Sub Procedure - ProcessClear(PROCESSCLEAR_P_NUM); - break; - case FN_ProcessClose: //Number Function - rc_push_num(ProcessClose(PROCESSCLOSE_P_NUM)); - break; - case FN_ProcessErrorMode: //Number Function - rc_push_num(ProcessErrorMode(PROCESSERRORMODE_P_NUM)); - break; - case FN_ProcessSleep: //Sub Procedure - ProcessSleep(PROCESSSLEEP_P_NUM, PROCESSSLEEP_MSEC); - break; - case FN_ProcessExists: //Number Function - rc_push_num(ProcessExists(PROCESSEXISTS_P_NUM)); - break; - case FN_ProcessStopAll: //Sub Procedure - ProcessStopAll(); - break; - case FN_ProcessContinueAll: //Sub Procedure - ProcessContinueAll(); - break; - case FN_ProcessQueueSize: //Number Function - rc_push_num(ProcessQueueSize(PROCESSQUEUESIZE_P_NUM)); - break; - case FN_NumCPUs: //Number Function - rc_push_num(NumCPUs()); - break; - case FN_GetProjectionGeometry: //Sub Procedure - rc_GetProjectionGeometry(GETPROJECTIONGEOMETRY_CAM_DIST, GETPROJECTIONGEOMETRY_MA, GETPROJECTIONGEOMETRY_F_VERTEX_COUNT, &GETPROJECTIONGEOMETRY_COLUMNS, &GETPROJECTIONGEOMETRY_UV, - GETPROJECTIONGEOMETRY_GRAPH_OFFSET_X, GETPROJECTIONGEOMETRY_GRAPH_OFFSET_Y, GETPROJECTIONGEOMETRY_V_COLOR, - &GETPROJECTIONGEOMETRY_VERTEX_COUNT, &GETPROJECTIONGEOMETRY_VERTEX2D, &GETPROJECTIONGEOMETRY_INDEX_COUNT, &GETPROJECTIONGEOMETRY_INDEX, - &GETPROJECTIONGEOMETRY_CLIP_DIST, &GETPROJECTIONGEOMETRY_MIN_X, &GETPROJECTIONGEOMETRY_MIN_Y, &GETPROJECTIONGEOMETRY_MAX_X, &GETPROJECTIONGEOMETRY_MAX_Y); - break; - case FN_CalculateFaceZ: //Number Function - rc_push_num( CalculateFaceZ(CALCULATEFACEZ_CAM_DIST, CALCULATEFACEZ_GRAPH_OFFSET_X, CALCULATEFACEZ_GRAPH_OFFSET_Y, CALCULATEFACEZ_VIEW_W, CALCULATEFACEZ_VIEW_H, CALCULATEFACEZ_VIEW_DEPTH, - CALCULATEFACEZ_MA, CALCULATEFACEZ_F_VERTEX_COUNT, &CALCULATEFACEZ_COLUMNS, &CALCULATEFACEZ_FACE_MIN_Z, &CALCULATEFACEZ_FACE_MAX_Z, &CALCULATEFACEZ_Z_AVG)); - break; - case FN_SetChannelSpacePosition: //Number Function - rc_push_num(rc_media_setChannelSpacePosition(SETCHANNELSPACEPOSITION_CHANNEL, SETCHANNELSPACEPOSITION_ANGLE, SETCHANNELSPACEPOSITION_DISTANCE)); - break; - case FN_SaveBMP: //Number Function - rc_push_num(SaveBMP(SAVEBMP_IMG, SAVEBMP_FILE$)); - break; - case FN_SavePNG: //Number Function - rc_push_num(SavePNG(SAVEPNG_IMG, SAVEPNG_FILE$)); - break; - case FN_SaveJPG: //Number Function - rc_push_num(SaveJPG(SAVEJPG_IMG, SAVEJPG_FILE$)); - break; - case FN_GetLineIntersection: //Number Function - rc_push_num(GetLineIntersect(GETLINEINTERSECTION_P0_X, GETLINEINTERSECTION_P0_Y, - GETLINEINTERSECTION_P1_X, GETLINEINTERSECTION_P1_Y, - GETLINEINTERSECTION_P2_X, GETLINEINTERSECTION_P2_Y, - GETLINEINTERSECTION_P3_X, GETLINEINTERSECTION_P3_Y, - &GETLINEINTERSECTION_I_X, &GETLINEINTERSECTION_I_Y)); - break; - case FN_Interpolate: //Number Function - rc_push_num(Interpolate(INTERPOLATE_MIN_A, INTERPOLATE_MAX_A, INTERPOLATE_MID_A, INTERPOLATE_MIN_B, INTERPOLATE_MAX_B)); - break; - case FN_ATan2: //Number Function - rc_push_num(atan2(ATAN2_Y, ATAN2_X)); - break; - case FN_PointInQuad: //Number Function - rc_push_num(PointInQuad(POINTINQUAD_X, POINTINQUAD_Y, - POINTINQUAD_X1, POINTINQUAD_Y1, - POINTINQUAD_X2, POINTINQUAD_Y2, - POINTINQUAD_X3, POINTINQUAD_Y3, - POINTINQUAD_X4, POINTINQUAD_Y4)); - break; - case FN_PointInTri: //Number Function - rc_push_num(PointInTri(POINTINTRI_X, POINTINTRI_Y, - POINTINTRI_X1, POINTINTRI_Y1, - POINTINTRI_X2, POINTINTRI_Y2, - POINTINTRI_X3, POINTINTRI_Y3)); - break; - case FN_Distance2D: //Number Function - rc_push_num(Distance2D(DISTANCE2D_X1, DISTANCE2D_Y1, DISTANCE2D_X2, DISTANCE2D_Y2)); - break; - case FN_Distance3D: //Number Function - rc_push_num(Distance3D(DISTANCE3D_X1, DISTANCE3D_Y1, DISTANCE3D_Z1, DISTANCE3D_X2, DISTANCE3D_Y2, DISTANCE3D_Z2)); - break; - case FN_GetCircleLineIntersection: //Number Function - rc_push_num(GetCircleLineIntersection(GETCIRCLELINEINTERSECTION_CIRCLE_X, GETCIRCLELINEINTERSECTION_CIRCLE_Y, GETCIRCLELINEINTERSECTION_RADIUS, - GETCIRCLELINEINTERSECTION_X1, GETCIRCLELINEINTERSECTION_Y1, - GETCIRCLELINEINTERSECTION_X2, GETCIRCLELINEINTERSECTION_Y2, - &GETCIRCLELINEINTERSECTION_IX1, &GETCIRCLELINEINTERSECTION_IY1, - &GETCIRCLELINEINTERSECTION_IX2, &GETCIRCLELINEINTERSECTION_IY2)); - break; - case FN_GetLinePlaneIntersection: //Number Function - rc_push_num(GetLinePlaneIntersection(&GETLINEPLANEINTERSECTION_LINE_POINT, &GETLINEPLANEINTERSECTION_LINE_DIRECTION, - &GETLINEPLANEINTERSECTION_PLANE_POINT_1, - &GETLINEPLANEINTERSECTION_PLANE_POINT_2, - &GETLINEPLANEINTERSECTION_PLANE_POINT_3, - &GETLINEPLANEINTERSECTION_INTERSECTION)); - break; - case FN_IncrementMatrixRows: //Sub Procedure - IncrementMatrixRows(INCREMENTMATRIXROWS_MA, INCREMENTMATRIXROWS_MB, INCREMENTMATRIXROWS_R, INCREMENTMATRIXROWS_NUM_ROWS, INCREMENTMATRIXROWS_VALUE); - break; - case FN_IncrementMatrixColumns: //Sub Procedure - IncrementMatrixColumns(INCREMENTMATRIXCOLUMNS_MA, INCREMENTMATRIXCOLUMNS_MB, INCREMENTMATRIXCOLUMNS_C, INCREMENTMATRIXCOLUMNS_NUM_COLS, INCREMENTMATRIXCOLUMNS_VALUE); - break; - case FN_JoinMatrixRows: //Sub Procedure - JoinMatrixRows(JOINMATRIXROWS_MA, JOINMATRIXROWS_MB, JOINMATRIXROWS_MC); - break; - case FN_JoinMatrixColumns: //Sub Procedure - JoinMatrixColumns(JOINMATRIXCOLUMNS_MA, JOINMATRIXCOLUMNS_MB, JOINMATRIXCOLUMNS_MC); - break; - - case FN_TypeArrayDim: //Number Function - rc_push_num( rc_type_array_dim( TYPEARRAYDIM_ID ) ); - arr_ref_id.clear(); - break; - case FN_TypeArraySize: //Number Function - rc_push_num( rc_type_array_size( TYPEARRAYSIZE_ID, TYPEARRAYSIZE_ARRAY_DIM ) ); - arr_ref_id.clear(); - break; - case FN_TypeArrayCopy: //Sub Procedure - //cout << "TAS: " << TYPEARRAYCOPY_SRC->uid_value.size() << endl; - //cout << "TAD: " << TYPEARRAYCOPY_DST->uid_value.size() << endl; - rc_free_type(TYPEARRAYCOPY_DST); //cout << "TA[2]: " << TYPEARRAYCOPY_DST->uid_value.size() << endl; - rc_type_array_copy( TYPEARRAYCOPY_SRC, TYPEARRAYCOPY_DST ); - break; - case FN_TypeArrayFill: //Sub Procedure - //cout << "test type fill" << endl; - rc_type_array_fill( TYPEARRAYFILL_SRC, &TYPEARRAYFILL_FDATA ); - break; - - + #include "rc_func130_cases.h" } }