; Listing generated by Microsoft (R) Optimizing Compiler Version 19.37.32824.0 include listing.inc INCLUDELIB MSVCRTD INCLUDELIB OLDNAMES msvcjmc SEGMENT __9C03CD75_concurrencysal@h DB 01H __CA64BAF1_sal@h DB 01H __95655E73_vadefs@h DB 01H __1D560A45_vcruntime@h DB 01H __1B0272D9_corecrt@h DB 01H __13F5961F_stddef@h DB 01H __ED683015_stdint@h DB 01H __89F75FCD_ssgc_internal@h DB 01H __A5E73FD0_glfw3@h DB 01H __1D45B1A5_glfw_null_platform@h DB 01H __74484FB3_corecrt_wctype@h DB 01H __CBE172F9_wctype@h DB 01H __0ED14FEE_winpackagefamily@h DB 01H __F92EF742_winapifamily@h DB 01H __22E515EB_sdkddkver@h DB 01H __F214EFBF_excpt@h DB 01H __D9B78EDA_stdarg@h DB 01H __29F49F40_specstrings_undef@h DB 01H __D0F42932_specstrings_strict@h DB 01H __F00405FD_sdv_driverspecs@h DB 01H __173E09CA_driverspecs@h DB 01H __9A452361_specstrings@h DB 01H __1EC467ED_ctype@h DB 01H __98517906_kernelspecs@h DB 01H __D3497022_basetsd@h DB 01H __61CC25A1_errno@h DB 01H __7061C667_vcruntime_string@h DB 01H __E4C945B4_corecrt_memcpy_s@h DB 01H __8EAFF484_corecrt_memory@h DB 01H __6490AEC5_corecrt_wstring@h DB 01H __E8295E1E_string@h DB 01H __7FCB5136_guiddef@h DB 01H __FF8A9E11_pshpack4@h DB 01H __D5438902_poppack@h DB 01H __FB07E2A3_pshpack2@h DB 01H __F6906775_pshpack8@h DB 01H __F9415CFA_pshpack1@h DB 01H __E58C6F1C_apiset@h DB 01H __A5C52262_ktmtypes@h DB 01H __FBBA8F9D_winnt@h DB 01H __A32D3D2C_minwindef@h DB 01H __7D798299_windef@h DB 01H __9AE108E9_apisetcconv@h DB 01H __9CE53D2C_minwinbase@h DB 01H __5D0AA210_apiquery2@h DB 01H __4DD4E726_processenv@h DB 01H __3575CC96_fileapi@h DB 01H __8EA220E6_fileapifromapp@h DB 01H __BF9B31FE_debugapi@h DB 01H __C3AFE134_utilapiset@h DB 01H __76F69E51_handleapi@h DB 01H __7E63D784_errhandlingapi@h DB 01H __FFA7003C_fibersapi@h DB 01H __8971CECF_namedpipeapi@h DB 01H __46C9D8A6_profileapi@h DB 01H __98D4F0A3_heapapi@h DB 01H __50EF2A88_ioapiset@h DB 01H __92EA1464_synchapi@h DB 01H __A53D8AED_interlockedapi@h DB 01H __B506CAAF_processthreadsapi@h DB 01H __FF735694_sysinfoapi@h DB 01H __29589789_memoryapi@h DB 01H __E9C7A663_enclaveapi@h DB 01H __D035F9F7_threadpoollegacyapiset@h DB 01H __C899130C_threadpoolapiset@h DB 01H __E0441EE7_jobapi@h DB 01H __CEF86838_jobapi2@h DB 01H __35AC6B9A_wow64apiset@h DB 01H __C8AE41A5_libloaderapi@h DB 01H __CC9E232D_securitybaseapi@h DB 01H __C9D0C9B8_namespaceapi@h DB 01H __30FF9CAD_systemtopologyapi@h DB 01H __4D358795_processtopologyapi@h DB 01H __40446D10_securityappcontainer@h DB 01H __3A952EDF_realtimeapiset@h DB 01H __F4865F4B_winerror@h DB 01H __53C1BD93_timezoneapi@h DB 01H __1FFBEDBF_winbase@h DB 01H __43D3FA34_wingdi@h DB 01H __D24A7391_tvout@h DB 01H __7713A6C8_winuser@h DB 01H __0B345F71_datetimeapi@h DB 01H __9AC6960C_winnls@h DB 01H __973A40A8_stringapiset@h DB 01H __CC46FEE2_wincontypes@h DB 01H __97D70BE1_consoleapi@h DB 01H __27EC5E18_consoleapi2@h DB 01H __262E342F_consoleapi3@h DB 01H __641DCD70_wincon@h DB 01H __5A96C7A7_verrsrc@h DB 01H __B69C6FF2_winver@h DB 01H __7AEB8C37_reason@h DB 01H __59F1A8A9_winreg@h DB 01H __EE0E2B7F_wnnc@h DB 01H __DCDB7054_winnetwk@h DB 01H __81DDEDE3_stralign@h DB 01H __2134D1B4_winsvc@h DB 01H __11C07376_mcx@h DB 01H __577CE3E7_ime_cmodes@h DB 01H __1E72C31E_imm@h DB 01H __E15BF856_windows@h DB 01H __DF8704F0_rpcdcep@h DB 01H __5C6CA7BB_rpcdce@h DB 01H __853533C4_rpcnsi@h DB 01H __2D2406C3_rpcnterr@h DB 01H __64521D71_rpcasync@h DB 01H __AADCBA08_rpc@h DB 01H __1FE431C9_rpcnsip@h DB 01H __2B741F2D_rpcsal@h DB 01H __92623256_rpcndr@h DB 01H __45DED006_corecrt_malloc@h DB 01H __FD6DBD68_corecrt_search@h DB 01H __E2E33A61_corecrt_wstdlib@h DB 01H __531E1E2A_limits@h DB 01H __6E5ACABA_stdlib@h DB 01H __9C18532E_wtypesbase@h DB 01H __30B1AFDA_unknwnbase@h DB 01H __328C1996_objidlbase@h DB 01H __C4E06B6A_cguid@h DB 01H __434718C5_combaseapi@h DB 01H __EA2E1D6D_wtypes@h DB 01H __DE6FDEF1_unknwn@h DB 01H __CCE0BACC_objidl@h DB 01H __8C7011E5_oaidl@h DB 01H __2E0B7863_propidlbase@h DB 01H __BF4CF2EC_coml2api@h DB 01H __6D897344_oleidl@h DB 01H __1129FC2C_servprov@h DB 01H __757952E4_msxml@h DB 01H __B1191D53_urlmon@h DB 01H __404D1A47_propidl@h DB 01H __A1C63593_objbase@h DB 01H __9F7C87B7_dinput@h DB 01H __B468A3D3_xinput@h DB 01H __AD768F06_dbt@h DB 01H __D83367F8_glfw_win32_platform@h DB 01H __53CB9229_glfw_null_joystick@h DB 01H __96BD4474_glfw_win32_joystick@h DB 01H __7D74CEA8_glfw_win32_thread@h DB 01H __C7421531_glfw_win32_time@h DB 01H __43B1F397_glfw_platform@h DB 01H __A547227D_glfw_internal@h DB 01H __19139D6C_assert@h DB 01H __44420885_corecrt_stdio_config@h DB 01H __AB601D8D_corecrt_wstdio@h DB 01H __C1EC35D3_stdio@h DB 01H __3C97119B_context@c DB 01H msvcjmc ENDS PUBLIC glfwMakeContextCurrent PUBLIC glfwGetCurrentContext PUBLIC glfwSwapBuffers PUBLIC glfwSwapInterval PUBLIC glfwExtensionSupported PUBLIC glfwGetProcAddress PUBLIC _glfwStringInExtensionString PUBLIC _glfwChooseFBConfig PUBLIC _glfwRefreshContextAttribs PUBLIC _glfwIsValidContextConfig PUBLIC __local_stdio_scanf_options PUBLIC _vsscanf_l PUBLIC sscanf PUBLIC __JustMyCode_Default PUBLIC ??_C@_0CE@JBLPENML@Invalid?5context?5creation?5API?50x@ ; `string' PUBLIC ??_C@_0BK@EIOPBJJH@Invalid?5client?5API?50x?$CF08X@ ; `string' PUBLIC ??_C@_0DE@OKHDGAJN@Context?5creation?5APIs?5do?5not?5ma@ ; `string' PUBLIC ??_C@_0BN@DHKEBMCG@Invalid?5OpenGL?5version?5?$CFi?4?$CFi@ ; `string' PUBLIC ??_C@_0BO@PCKHNBJ@Invalid?5OpenGL?5profile?50x?$CF08X@ ; `string' PUBLIC ??_C@_0ED@FEABOOIM@Context?5profiles?5are?5only?5defin@ ; `string' PUBLIC ??_C@_0EH@CMDCLIEA@Forward?9compatibility?5is?5only?5d@ ; `string' PUBLIC ??_C@_0CA@LFIDGAHJ@Invalid?5OpenGL?5ES?5version?5?$CFi?4?$CFi@ ; `string' PUBLIC ??_C@_0CH@PNNMGINB@Invalid?5context?5robustness?5mode@ ; `string' PUBLIC ??_C@_0CI@JDDJIGNN@Invalid?5context?5release?5behavio@ ; `string' PUBLIC ??_C@_0O@ENGHJHNB@OpenGL?5ES?9CM?5@ ; `string' PUBLIC ??_C@_0O@EMKFPNOG@OpenGL?5ES?9CL?5@ ; `string' PUBLIC ??_C@_0L@JLFHOCGA@OpenGL?5ES?5@ ; `string' PUBLIC ??_C@_0O@DHHDCCLF@glGetIntegerv@ ; `string' PUBLIC ??_C@_0M@OPOBFDCB@glGetString@ ; `string' PUBLIC ??_C@_0CA@LDAANPIM@Entry?5point?5retrieval?5is?5broken@ ; `string' PUBLIC ??_C@_0CK@DKAFEDIC@OpenGL?5version?5string?5retrieval@ ; `string' PUBLIC ??_C@_0CN@GOPDCGGI@OpenGL?5ES?5version?5string?5retrie@ ; `string' PUBLIC ??_C@_08FOJKHHJA@?$CFd?4?$CFd?4?$CFd@ ; `string' PUBLIC ??_C@_0CK@DDNMEIKD@No?5version?5found?5in?5OpenGL?5vers@ ; `string' PUBLIC ??_C@_0CN@FALFGDO@No?5version?5found?5in?5OpenGL?5ES?5v@ ; `string' PUBLIC ??_C@_0DC@KIAJNHJN@Requested?5OpenGL?5version?5?$CFi?4?$CFi?0@ ; `string' PUBLIC ??_C@_0DF@EFFMOKHE@Requested?5OpenGL?5ES?5version?5?$CFi?4@ ; `string' PUBLIC ??_C@_0N@PILJCBOD@glGetStringi@ ; `string' PUBLIC ??_C@_0BE@OHIPHHMJ@GL_ARB_debug_output@ ; `string' PUBLIC ??_C@_0BF@CJMIIMBG@GL_ARB_compatibility@ ; `string' PUBLIC ??_C@_0BC@EOBKJDCM@GL_ARB_robustness@ ; `string' PUBLIC ??_C@_0BC@CLDFFND@GL_EXT_robustness@ ; `string' PUBLIC ??_C@_0BN@FNDGKECA@GL_KHR_context_flush_control@ ; `string' PUBLIC ??_C@_07IBAPPAHJ@glClear@ ; `string' PUBLIC ??_C@_0EK@HBJBDMAL@Cannot?5make?5current?5with?5a?5wind@ ; `string' PUBLIC ??_C@_1LM@EKCBKLBC@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@ ; `string' PUBLIC ??_C@_1BO@GACOJICA@?$AAw?$AAi?$AAn?$AAd?$AAo?$AAw?$AA?5?$AA?$CB?$AA?$DN?$AA?5?$AAN?$AAU?$AAL?$AAL@ ; `string' PUBLIC ??_C@_0EI@PJFDHBJK@Cannot?5swap?5buffers?5of?5a?5window@ ; `string' PUBLIC ??_C@_0EH@BEBOCAGI@Cannot?5set?5swap?5interval?5withou@ ; `string' PUBLIC ??_C@_1CE@LFEPMALP@?$AAe?$AAx?$AAt?$AAe?$AAn?$AAs?$AAi?$AAo?$AAn?$AA?5?$AA?$CB?$AA?$DN?$AA?5?$AAN?$AAU@ ; `string' PUBLIC ??_C@_0EF@NMJGLODJ@Cannot?5query?5extension?5without?5@ ; `string' PUBLIC ??_C@_0CJ@JDBBFPLM@Extension?5name?5cannot?5be?5an?5emp@ ; `string' PUBLIC ??_C@_0CF@KMMHNOMI@Extension?5string?5retrieval?5is?5b@ ; `string' PUBLIC ??_C@_1CC@BJDHFMNM@?$AAp?$AAr?$AAo?$AAc?$AAn?$AAa?$AAm?$AAe?$AA?5?$AA?$CB?$AA?$DN?$AA?5?$AAN?$AAU?$AAL@ ; `string' PUBLIC ??_C@_0EH@LGPPFAO@Cannot?5query?5entry?5point?5withou@ ; `string' EXTRN strstr:PROC EXTRN strcmp:PROC EXTRN strlen:PROC EXTRN __imp_strncmp:PROC EXTRN _glfwPlatformGetTls:PROC EXTRN _glfwInputError:PROC EXTRN __imp__wassert:PROC EXTRN __imp___stdio_common_vsscanf:PROC EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC EXTRN __GSHandlerCheck:PROC EXTRN __security_check_cookie:PROC EXTRN _glfw:BYTE EXTRN __security_cookie:QWORD _DATA SEGMENT COMM ?_OptionsStorage@?1??__local_stdio_scanf_options@@9@9:QWORD ; `__local_stdio_scanf_options'::`2'::_OptionsStorage _DATA ENDS ; COMDAT pdata pdata SEGMENT $pdata$glfwMakeContextCurrent DD imagerel $LN9 DD imagerel $LN9+199 DD imagerel $unwind$glfwMakeContextCurrent pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$glfwGetCurrentContext DD imagerel $LN4 DD imagerel $LN4+74 DD imagerel $unwind$glfwGetCurrentContext pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$glfwSwapBuffers DD imagerel $LN6 DD imagerel $LN6+156 DD imagerel $unwind$glfwSwapBuffers pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$glfwSwapInterval DD imagerel $LN5 DD imagerel $LN5+121 DD imagerel $unwind$glfwSwapInterval pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$glfwExtensionSupported DD imagerel $LN16 DD imagerel $LN16+516 DD imagerel $unwind$glfwExtensionSupported pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$glfwGetProcAddress DD imagerel $LN6 DD imagerel $LN6+165 DD imagerel $unwind$glfwGetProcAddress pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwStringInExtensionString DD imagerel $LN11 DD imagerel $LN11+177 DD imagerel $unwind$_glfwStringInExtensionString pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwChooseFBConfig DD imagerel $LN31 DD imagerel $LN31+1423 DD imagerel $unwind$_glfwChooseFBConfig pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwRefreshContextAttribs DD imagerel $LN49 DD imagerel $LN49+1866 DD imagerel $unwind$_glfwRefreshContextAttribs pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwIsValidContextConfig DD imagerel $LN28 DD imagerel $LN28+987 DD imagerel $unwind$_glfwIsValidContextConfig pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$__local_stdio_scanf_options DD imagerel $LN3 DD imagerel $LN3+44 DD imagerel $unwind$__local_stdio_scanf_options pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_vsscanf_l DD imagerel $LN3 DD imagerel $LN3+115 DD imagerel $unwind$_vsscanf_l pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$sscanf DD imagerel $LN3 DD imagerel $LN3+184 DD imagerel $unwind$sscanf pdata ENDS ; COMDAT rtc$TMZ rtc$TMZ SEGMENT _RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown rtc$TMZ ENDS ; COMDAT rtc$IMZ rtc$IMZ SEGMENT _RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase rtc$IMZ ENDS ; COMDAT ??_C@_0EH@LGPPFAO@Cannot?5query?5entry?5point?5withou@ CONST SEGMENT ??_C@_0EH@LGPPFAO@Cannot?5query?5entry?5point?5withou@ DB 'Cannot query e' DB 'ntry point without a current OpenGL or OpenGL ES context', 00H ; `string' CONST ENDS ; COMDAT ??_C@_1CC@BJDHFMNM@?$AAp?$AAr?$AAo?$AAc?$AAn?$AAa?$AAm?$AAe?$AA?5?$AA?$CB?$AA?$DN?$AA?5?$AAN?$AAU?$AAL@ CONST SEGMENT ??_C@_1CC@BJDHFMNM@?$AAp?$AAr?$AAo?$AAc?$AAn?$AAa?$AAm?$AAe?$AA?5?$AA?$CB?$AA?$DN?$AA?5?$AAN?$AAU?$AAL@ DB 'p' DB 00H, 'r', 00H, 'o', 00H, 'c', 00H, 'n', 00H, 'a', 00H, 'm', 00H DB 'e', 00H, ' ', 00H, '!', 00H, '=', 00H, ' ', 00H, 'N', 00H, 'U' DB 00H, 'L', 00H, 'L', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CF@KMMHNOMI@Extension?5string?5retrieval?5is?5b@ CONST SEGMENT ??_C@_0CF@KMMHNOMI@Extension?5string?5retrieval?5is?5b@ DB 'Extension str' DB 'ing retrieval is broken', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CJ@JDBBFPLM@Extension?5name?5cannot?5be?5an?5emp@ CONST SEGMENT ??_C@_0CJ@JDBBFPLM@Extension?5name?5cannot?5be?5an?5emp@ DB 'Extension na' DB 'me cannot be an empty string', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0EF@NMJGLODJ@Cannot?5query?5extension?5without?5@ CONST SEGMENT ??_C@_0EF@NMJGLODJ@Cannot?5query?5extension?5without?5@ DB 'Cannot query ' DB 'extension without a current OpenGL or OpenGL ES context', 00H ; `string' CONST ENDS ; COMDAT ??_C@_1CE@LFEPMALP@?$AAe?$AAx?$AAt?$AAe?$AAn?$AAs?$AAi?$AAo?$AAn?$AA?5?$AA?$CB?$AA?$DN?$AA?5?$AAN?$AAU@ CONST SEGMENT ??_C@_1CE@LFEPMALP@?$AAe?$AAx?$AAt?$AAe?$AAn?$AAs?$AAi?$AAo?$AAn?$AA?5?$AA?$CB?$AA?$DN?$AA?5?$AAN?$AAU@ DB 'e' DB 00H, 'x', 00H, 't', 00H, 'e', 00H, 'n', 00H, 's', 00H, 'i', 00H DB 'o', 00H, 'n', 00H, ' ', 00H, '!', 00H, '=', 00H, ' ', 00H, 'N' DB 00H, 'U', 00H, 'L', 00H, 'L', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_0EH@BEBOCAGI@Cannot?5set?5swap?5interval?5withou@ CONST SEGMENT ??_C@_0EH@BEBOCAGI@Cannot?5set?5swap?5interval?5withou@ DB 'Cannot set sw' DB 'ap interval without a current OpenGL or OpenGL ES context', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0EI@PJFDHBJK@Cannot?5swap?5buffers?5of?5a?5window@ CONST SEGMENT ??_C@_0EI@PJFDHBJK@Cannot?5swap?5buffers?5of?5a?5window@ DB 'Cannot swap ' DB 'buffers of a window that has no OpenGL or OpenGL ES context', 00H ; `string' CONST ENDS ; COMDAT ??_C@_1BO@GACOJICA@?$AAw?$AAi?$AAn?$AAd?$AAo?$AAw?$AA?5?$AA?$CB?$AA?$DN?$AA?5?$AAN?$AAU?$AAL?$AAL@ CONST SEGMENT ??_C@_1BO@GACOJICA@?$AAw?$AAi?$AAn?$AAd?$AAo?$AAw?$AA?5?$AA?$CB?$AA?$DN?$AA?5?$AAN?$AAU?$AAL?$AAL@ DB 'w' DB 00H, 'i', 00H, 'n', 00H, 'd', 00H, 'o', 00H, 'w', 00H, ' ', 00H DB '!', 00H, '=', 00H, ' ', 00H, 'N', 00H, 'U', 00H, 'L', 00H, 'L' DB 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_1LM@EKCBKLBC@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@ CONST SEGMENT ??_C@_1LM@EKCBKLBC@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@ DB 'D' DB 00H, ':', 00H, '\', 00H, 'N', 00H, 'i', 00H, 't', 00H, 'l', 00H DB 'o', 00H, 'a', 00H, 'd', 00H, 'I', 00H, 'n', 00H, 'd', 00H, 'u' DB 00H, 's', 00H, 't', 00H, 'r', 00H, 'y', 00H, '\', 00H, 014H, 'x' DB 'vzy', 098H, 0eeH, 'v\', 00H, '1', 00H, '-', 00H, 'F', 00H, 'l' DB 00H, 'a', 00H, 'g', 00H, 's', 00H, 'h', 00H, 'i', 00H, 'p', 00H DB '\', 00H, 'T', 00H, 'H', 00H, '2', 00H, '0', 00H, '2', 00H, '0' DB 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'j', 00H, 'e', 00H DB 'c', 00H, 't', 00H, 'F', 00H, 'i', 00H, 'l', 00H, 'e', 00H, '\' DB 00H, 090H, 'n', 0e3H, 'N', 01H, 'x\', 00H, 'S', 00H, 't', 00H, 'g' DB 00H, 'S', 00H, 'h', 00H, 'a', 00H, 'r', 00H, 'p', 00H, 'G', 00H DB 'r', 00H, 'a', 00H, 'p', 00H, 'h', 00H, 'i', 00H, 'c', 00H, '\' DB 00H, 'c', 00H, 'o', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'g', 00H DB 'l', 00H, 'f', 00H, 'w', 00H, '\', 00H, 'c', 00H, 'o', 00H, 'n' DB 00H, 't', 00H, 'e', 00H, 'x', 00H, 't', 00H, '.', 00H, 'c', 00H DB 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_0EK@HBJBDMAL@Cannot?5make?5current?5with?5a?5wind@ CONST SEGMENT ??_C@_0EK@HBJBDMAL@Cannot?5make?5current?5with?5a?5wind@ DB 'Cannot make ' DB 'current with a window that has no OpenGL or OpenGL ES context' DB 00H ; `string' CONST ENDS ; COMDAT ??_C@_07IBAPPAHJ@glClear@ CONST SEGMENT ??_C@_07IBAPPAHJ@glClear@ DB 'glClear', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BN@FNDGKECA@GL_KHR_context_flush_control@ CONST SEGMENT ??_C@_0BN@FNDGKECA@GL_KHR_context_flush_control@ DB 'GL_KHR_context_flush' DB '_control', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BC@CLDFFND@GL_EXT_robustness@ CONST SEGMENT ??_C@_0BC@CLDFFND@GL_EXT_robustness@ DB 'GL_EXT_robustness', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BC@EOBKJDCM@GL_ARB_robustness@ CONST SEGMENT ??_C@_0BC@EOBKJDCM@GL_ARB_robustness@ DB 'GL_ARB_robustness', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BF@CJMIIMBG@GL_ARB_compatibility@ CONST SEGMENT ??_C@_0BF@CJMIIMBG@GL_ARB_compatibility@ DB 'GL_ARB_compatibility', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BE@OHIPHHMJ@GL_ARB_debug_output@ CONST SEGMENT ??_C@_0BE@OHIPHHMJ@GL_ARB_debug_output@ DB 'GL_ARB_debug_output', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0N@PILJCBOD@glGetStringi@ CONST SEGMENT ??_C@_0N@PILJCBOD@glGetStringi@ DB 'glGetStringi', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0DF@EFFMOKHE@Requested?5OpenGL?5ES?5version?5?$CFi?4@ CONST SEGMENT ??_C@_0DF@EFFMOKHE@Requested?5OpenGL?5ES?5version?5?$CFi?4@ DB 'Requested' DB ' OpenGL ES version %i.%i, got version %i.%i', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0DC@KIAJNHJN@Requested?5OpenGL?5version?5?$CFi?4?$CFi?0@ CONST SEGMENT ??_C@_0DC@KIAJNHJN@Requested?5OpenGL?5version?5?$CFi?4?$CFi?0@ DB 'Reques' DB 'ted OpenGL version %i.%i, got version %i.%i', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CN@FALFGDO@No?5version?5found?5in?5OpenGL?5ES?5v@ CONST SEGMENT ??_C@_0CN@FALFGDO@No?5version?5found?5in?5OpenGL?5ES?5v@ DB 'No version f' DB 'ound in OpenGL ES version string', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CK@DDNMEIKD@No?5version?5found?5in?5OpenGL?5vers@ CONST SEGMENT ??_C@_0CK@DDNMEIKD@No?5version?5found?5in?5OpenGL?5vers@ DB 'No version f' DB 'ound in OpenGL version string', 00H ; `string' CONST ENDS ; COMDAT ??_C@_08FOJKHHJA@?$CFd?4?$CFd?4?$CFd@ CONST SEGMENT ??_C@_08FOJKHHJA@?$CFd?4?$CFd?4?$CFd@ DB '%d.%d.%d', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CN@GOPDCGGI@OpenGL?5ES?5version?5string?5retrie@ CONST SEGMENT ??_C@_0CN@GOPDCGGI@OpenGL?5ES?5version?5string?5retrie@ DB 'OpenGL ES ver' DB 'sion string retrieval is broken', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CK@DKAFEDIC@OpenGL?5version?5string?5retrieval@ CONST SEGMENT ??_C@_0CK@DKAFEDIC@OpenGL?5version?5string?5retrieval@ DB 'OpenGL version' DB ' string retrieval is broken', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CA@LDAANPIM@Entry?5point?5retrieval?5is?5broken@ CONST SEGMENT ??_C@_0CA@LDAANPIM@Entry?5point?5retrieval?5is?5broken@ DB 'Entry point r' DB 'etrieval is broken', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0M@OPOBFDCB@glGetString@ CONST SEGMENT ??_C@_0M@OPOBFDCB@glGetString@ DB 'glGetString', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0O@DHHDCCLF@glGetIntegerv@ CONST SEGMENT ??_C@_0O@DHHDCCLF@glGetIntegerv@ DB 'glGetIntegerv', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0L@JLFHOCGA@OpenGL?5ES?5@ CONST SEGMENT ??_C@_0L@JLFHOCGA@OpenGL?5ES?5@ DB 'OpenGL ES ', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0O@EMKFPNOG@OpenGL?5ES?9CL?5@ CONST SEGMENT ??_C@_0O@EMKFPNOG@OpenGL?5ES?9CL?5@ DB 'OpenGL ES-CL ', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0O@ENGHJHNB@OpenGL?5ES?9CM?5@ CONST SEGMENT ??_C@_0O@ENGHJHNB@OpenGL?5ES?9CM?5@ DB 'OpenGL ES-CM ', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CI@JDDJIGNN@Invalid?5context?5release?5behavio@ CONST SEGMENT ??_C@_0CI@JDDJIGNN@Invalid?5context?5release?5behavio@ DB 'Invalid contex' DB 't release behavior 0x%08X', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CH@PNNMGINB@Invalid?5context?5robustness?5mode@ CONST SEGMENT ??_C@_0CH@PNNMGINB@Invalid?5context?5robustness?5mode@ DB 'Invalid contex' DB 't robustness mode 0x%08X', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CA@LFIDGAHJ@Invalid?5OpenGL?5ES?5version?5?$CFi?4?$CFi@ CONST SEGMENT ??_C@_0CA@LFIDGAHJ@Invalid?5OpenGL?5ES?5version?5?$CFi?4?$CFi@ DB 'Invali' DB 'd OpenGL ES version %i.%i', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0EH@CMDCLIEA@Forward?9compatibility?5is?5only?5d@ CONST SEGMENT ??_C@_0EH@CMDCLIEA@Forward?9compatibility?5is?5only?5d@ DB 'Forward-compa' DB 'tibility is only defined for OpenGL version 3.0 and above', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0ED@FEABOOIM@Context?5profiles?5are?5only?5defin@ CONST SEGMENT ??_C@_0ED@FEABOOIM@Context?5profiles?5are?5only?5defin@ DB 'Context profi' DB 'les are only defined for OpenGL version 3.2 and above', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BO@PCKHNBJ@Invalid?5OpenGL?5profile?50x?$CF08X@ CONST SEGMENT ??_C@_0BO@PCKHNBJ@Invalid?5OpenGL?5profile?50x?$CF08X@ DB 'Invalid OpenGL' DB ' profile 0x%08X', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BN@DHKEBMCG@Invalid?5OpenGL?5version?5?$CFi?4?$CFi@ CONST SEGMENT ??_C@_0BN@DHKEBMCG@Invalid?5OpenGL?5version?5?$CFi?4?$CFi@ DB 'Invalid Op' DB 'enGL version %i.%i', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0DE@OKHDGAJN@Context?5creation?5APIs?5do?5not?5ma@ CONST SEGMENT ??_C@_0DE@OKHDGAJN@Context?5creation?5APIs?5do?5not?5ma@ DB 'Context crea' DB 'tion APIs do not match between contexts', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BK@EIOPBJJH@Invalid?5client?5API?50x?$CF08X@ CONST SEGMENT ??_C@_0BK@EIOPBJJH@Invalid?5client?5API?50x?$CF08X@ DB 'Invalid client AP' DB 'I 0x%08X', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CE@JBLPENML@Invalid?5context?5creation?5API?50x@ CONST SEGMENT ??_C@_0CE@JBLPENML@Invalid?5context?5creation?5API?50x@ DB 'Invalid conte' DB 'xt creation API 0x%08X', 00H ; `string' CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 045H DB 09fH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$sscanf DD 025054c19H DD 011d2322H DD 070160025H DD 05015H DD imagerel __GSHandlerCheck DD 0118H xdata ENDS ; COMDAT CONST CONST SEGMENT sscanf$rtcName$0 DB 05fH DB 041H DB 072H DB 067H DB 04cH DB 069H DB 073H DB 074H DB 00H ORG $+7 sscanf$rtcVarDesc DD 048H DD 08H DQ FLAT:sscanf$rtcName$0 ORG $+48 sscanf$rtcFrameData DD 01H DD 00H DQ FLAT:sscanf$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$_vsscanf_l DD 035052201H DD 011d3322H DD 07016001fH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$__local_stdio_scanf_options DD 025050f01H DD 010a230fH DD 07003001dH DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwIsValidContextConfig DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 03bH DW 0731H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwRefreshContextAttribs DD 035054219H DD 01133318H DD 0700c004fH DD 0500bH DD imagerel __GSHandlerCheck DD 0268H xdata ENDS ; COMDAT CONST CONST SEGMENT _glfwRefreshContextAttribs$rtcName$0 DB 070H DB 072H DB 065H DB 066H DB 069H DB 078H DB 065H DB 073H DB 00H ORG $+3 _glfwRefreshContextAttribs$rtcName$1 DB 066H DB 06cH DB 061H DB 067H DB 073H DB 00H ORG $+2 _glfwRefreshContextAttribs$rtcName$2 DB 06dH DB 061H DB 073H DB 06bH DB 00H ORG $+7 _glfwRefreshContextAttribs$rtcName$3 DB 073H DB 074H DB 072H DB 061H DB 074H DB 065H DB 067H DB 079H DB 00H ORG $+7 _glfwRefreshContextAttribs$rtcName$4 DB 073H DB 074H DB 072H DB 061H DB 074H DB 065H DB 067H DB 079H DB 00H ORG $+7 _glfwRefreshContextAttribs$rtcName$5 DB 062H DB 065H DB 068H DB 061H DB 076H DB 069H DB 06fH DB 072H DB 00H ORG $+7 _glfwRefreshContextAttribs$rtcVarDesc DD 0174H DD 04H DQ FLAT:_glfwRefreshContextAttribs$rtcName$5 DD 0154H DD 04H DQ FLAT:_glfwRefreshContextAttribs$rtcName$4 DD 0134H DD 04H DQ FLAT:_glfwRefreshContextAttribs$rtcName$3 DD 0114H DD 04H DQ FLAT:_glfwRefreshContextAttribs$rtcName$2 DD 0f4H DD 04H DQ FLAT:_glfwRefreshContextAttribs$rtcName$1 DD 098H DD 020H DQ FLAT:_glfwRefreshContextAttribs$rtcName$0 ORG $+288 _glfwRefreshContextAttribs$rtcFrameData DD 06H DD 00H DQ FLAT:_glfwRefreshContextAttribs$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwChooseFBConfig DD 025051d01H DD 0118231dH DD 070110041H DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwStringInExtensionString DD 025051801H DD 01132318H DD 0700c0029H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$glfwGetProcAddress DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 036H DW 01ebH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$glfwExtensionSupported DD 025053d19H DD 010e2313H DD 070070031H DD 05006H DD imagerel __GSHandlerCheck DD 0178H xdata ENDS ; COMDAT CONST CONST SEGMENT glfwExtensionSupported$rtcName$0 DB 063H DB 06fH DB 075H DB 06eH DB 074H DB 00H ORG $+10 glfwExtensionSupported$rtcVarDesc DD 064H DD 04H DQ FLAT:glfwExtensionSupported$rtcName$0 ORG $+48 glfwExtensionSupported$rtcFrameData DD 01H DD 00H DQ FLAT:glfwExtensionSupported$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$glfwSwapInterval DD 025051201H DD 010d2312H DD 070060021H DD 05005H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$glfwSwapBuffers DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$glfwGetCurrentContext DD 025050f01H DD 010a230fH DD 07003001dH DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$glfwMakeContextCurrent DD 025051301H DD 010e2313H DD 070070025H DD 05006H xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default _TEXT SEGMENT __JustMyCode_Default PROC ; COMDAT 00000 c2 00 00 ret 0 __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\stdio.h ; COMDAT sscanf _TEXT SEGMENT _Result$ = 4 _ArgList$ = 40 __$ArrayPad$ = 248 _Buffer$ = 288 _Format$ = 296 sscanf PROC ; COMDAT ; 2247 : { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000f 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00027 b9 12 00 00 00 mov ecx, 18 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 48 01 00 00 mov rcx, QWORD PTR [rsp+328] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 f8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__C1EC35D3_stdio@h 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 2248 : int _Result; ; 2249 : va_list _ArgList; ; 2250 : __crt_va_start(_ArgList, _Format); 00058 48 8d 85 30 01 00 00 lea rax, QWORD PTR _Format$[rbp+8] 0005f 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax ; 2251 : _Result = _vsscanf_l(_Buffer, _Format, NULL, _ArgList); 00063 4c 8b 4d 28 mov r9, QWORD PTR _ArgList$[rbp] 00067 45 33 c0 xor r8d, r8d 0006a 48 8b 95 28 01 00 00 mov rdx, QWORD PTR _Format$[rbp] 00071 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Buffer$[rbp] 00078 e8 00 00 00 00 call _vsscanf_l 0007d 89 45 04 mov DWORD PTR _Result$[rbp], eax ; 2252 : __crt_va_end(_ArgList); 00080 48 c7 45 28 00 00 00 00 mov QWORD PTR _ArgList$[rbp], 0 ; 2253 : return _Result; 00088 8b 45 04 mov eax, DWORD PTR _Result$[rbp] ; 2254 : } 0008b 8b f8 mov edi, eax 0008d 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 00091 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:sscanf$rtcFrameData 00098 e8 00 00 00 00 call _RTC_CheckStackVars 0009d 8b c7 mov eax, edi 0009f 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000a6 48 33 cd xor rcx, rbp 000a9 e8 00 00 00 00 call __security_check_cookie 000ae 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 000b5 5f pop rdi 000b6 5d pop rbp 000b7 c3 ret 0 sscanf ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\stdio.h ; COMDAT _vsscanf_l _TEXT SEGMENT _Buffer$ = 224 _Format$ = 232 _Locale$ = 240 _ArgList$ = 248 _vsscanf_l PROC ; COMDAT ; 2152 : { $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__C1EC35D3_stdio@h 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 2153 : return __stdio_common_vsscanf( 0002e e8 00 00 00 00 call __local_stdio_scanf_options 00033 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _ArgList$[rbp] 0003a 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx 0003f 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR _Locale$[rbp] 00046 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx 0004b 4c 8b 8d e8 00 00 00 mov r9, QWORD PTR _Format$[rbp] 00052 49 c7 c0 ff ff ff ff mov r8, -1 00059 48 8b 95 e0 00 00 00 mov rdx, QWORD PTR _Buffer$[rbp] 00060 48 8b 08 mov rcx, QWORD PTR [rax] 00063 ff 15 00 00 00 00 call QWORD PTR __imp___stdio_common_vsscanf ; 2154 : _CRT_INTERNAL_LOCAL_SCANF_OPTIONS, ; 2155 : _Buffer, (size_t)-1, _Format, _Locale, _ArgList); ; 2156 : } 00069 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00070 5f pop rdi 00071 5d pop rbp 00072 c3 ret 0 _vsscanf_l ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\corecrt_stdio_config.h ; COMDAT __local_stdio_scanf_options _TEXT SEGMENT __local_stdio_scanf_options PROC ; COMDAT ; 100 : { $LN3: 00000 40 55 push rbp 00002 57 push rdi 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0000f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__44420885_corecrt_stdio_config@h 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 101 : static unsigned __int64 _OptionsStorage; ; 102 : return &_OptionsStorage; 0001b 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:?_OptionsStorage@?1??__local_stdio_scanf_options@@9@9 ; `__local_stdio_scanf_options'::`2'::_OptionsStorage ; 103 : } 00022 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00029 5f pop rdi 0002a 5d pop rbp 0002b c3 ret 0 __local_stdio_scanf_options ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\context.c ; COMDAT _glfwIsValidContextConfig _TEXT SEGMENT ctxconfig$ = 224 _glfwIsValidContextConfig PROC ; COMDAT ; 50 : { $LN28: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__3C97119B_context@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 51 : if (ctxconfig->source != GLFW_NATIVE_CONTEXT_API && ; 52 : ctxconfig->source != GLFW_EGL_CONTEXT_API && 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00026 81 78 04 01 60 03 00 cmp DWORD PTR [rax+4], 221185 ; 00036001H 0002d 74 43 je SHORT $LN2@glfwIsVali 0002f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00036 81 78 04 02 60 03 00 cmp DWORD PTR [rax+4], 221186 ; 00036002H 0003d 74 33 je SHORT $LN2@glfwIsVali 0003f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00046 81 78 04 03 60 03 00 cmp DWORD PTR [rax+4], 221187 ; 00036003H 0004d 74 23 je SHORT $LN2@glfwIsVali ; 53 : ctxconfig->source != GLFW_OSMESA_CONTEXT_API) ; 54 : { ; 55 : _glfwInputError(GLFW_INVALID_ENUM, 0004f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00056 44 8b 40 04 mov r8d, DWORD PTR [rax+4] 0005a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CE@JBLPENML@Invalid?5context?5creation?5API?50x@ 00061 b9 03 00 01 00 mov ecx, 65539 ; 00010003H 00066 e8 00 00 00 00 call _glfwInputError ; 56 : "Invalid context creation API 0x%08X", ; 57 : ctxconfig->source); ; 58 : return GLFW_FALSE; 0006b 33 c0 xor eax, eax 0006d e9 5f 03 00 00 jmp $LN1@glfwIsVali $LN2@glfwIsVali: ; 59 : } ; 60 : ; 61 : if (ctxconfig->client != GLFW_NO_API && ; 62 : ctxconfig->client != GLFW_OPENGL_API && 00072 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00079 83 38 00 cmp DWORD PTR [rax], 0 0007c 74 40 je SHORT $LN3@glfwIsVali 0007e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00085 81 38 01 00 03 00 cmp DWORD PTR [rax], 196609 ; 00030001H 0008b 74 31 je SHORT $LN3@glfwIsVali 0008d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00094 81 38 02 00 03 00 cmp DWORD PTR [rax], 196610 ; 00030002H 0009a 74 22 je SHORT $LN3@glfwIsVali ; 63 : ctxconfig->client != GLFW_OPENGL_ES_API) ; 64 : { ; 65 : _glfwInputError(GLFW_INVALID_ENUM, 0009c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 000a3 44 8b 00 mov r8d, DWORD PTR [rax] 000a6 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0BK@EIOPBJJH@Invalid?5client?5API?50x?$CF08X@ 000ad b9 03 00 01 00 mov ecx, 65539 ; 00010003H 000b2 e8 00 00 00 00 call _glfwInputError ; 66 : "Invalid client API 0x%08X", ; 67 : ctxconfig->client); ; 68 : return GLFW_FALSE; 000b7 33 c0 xor eax, eax 000b9 e9 13 03 00 00 jmp $LN1@glfwIsVali $LN3@glfwIsVali: ; 69 : } ; 70 : ; 71 : if (ctxconfig->share) 000be 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 000c5 48 83 78 28 00 cmp QWORD PTR [rax+40], 0 000ca 74 68 je SHORT $LN4@glfwIsVali ; 72 : { ; 73 : if (ctxconfig->client == GLFW_NO_API || 000cc 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 000d3 83 38 00 cmp DWORD PTR [rax], 0 000d6 74 14 je SHORT $LN6@glfwIsVali 000d8 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 000df 48 8b 40 28 mov rax, QWORD PTR [rax+40] 000e3 83 b8 08 02 00 00 00 cmp DWORD PTR [rax+520], 0 000ea 75 13 jne SHORT $LN5@glfwIsVali $LN6@glfwIsVali: ; 74 : ctxconfig->share->context.client == GLFW_NO_API) ; 75 : { ; 76 : _glfwInputError(GLFW_NO_WINDOW_CONTEXT, NULL); 000ec 33 d2 xor edx, edx 000ee b9 0a 00 01 00 mov ecx, 65546 ; 0001000aH 000f3 e8 00 00 00 00 call _glfwInputError ; 77 : return GLFW_FALSE; 000f8 33 c0 xor eax, eax 000fa e9 d2 02 00 00 jmp $LN1@glfwIsVali $LN5@glfwIsVali: ; 78 : } ; 79 : ; 80 : if (ctxconfig->source != ctxconfig->share->context.source) 000ff 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00106 48 8b 40 28 mov rax, QWORD PTR [rax+40] 0010a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR ctxconfig$[rbp] 00111 8b 80 0c 02 00 00 mov eax, DWORD PTR [rax+524] 00117 39 41 04 cmp DWORD PTR [rcx+4], eax 0011a 74 18 je SHORT $LN7@glfwIsVali ; 81 : { ; 82 : _glfwInputError(GLFW_INVALID_ENUM, 0011c 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0DE@OKHDGAJN@Context?5creation?5APIs?5do?5not?5ma@ 00123 b9 03 00 01 00 mov ecx, 65539 ; 00010003H 00128 e8 00 00 00 00 call _glfwInputError ; 83 : "Context creation APIs do not match between contexts"); ; 84 : return GLFW_FALSE; 0012d 33 c0 xor eax, eax 0012f e9 9d 02 00 00 jmp $LN1@glfwIsVali $LN7@glfwIsVali: $LN4@glfwIsVali: ; 85 : } ; 86 : } ; 87 : ; 88 : if (ctxconfig->client == GLFW_OPENGL_API) 00134 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 0013b 81 38 01 00 03 00 cmp DWORD PTR [rax], 196609 ; 00030001H 00141 0f 85 60 01 00 00 jne $LN8@glfwIsVali ; 89 : { ; 90 : if ((ctxconfig->major < 1 || ctxconfig->minor < 0) || ; 91 : (ctxconfig->major == 1 && ctxconfig->minor > 5) || ; 92 : (ctxconfig->major == 2 && ctxconfig->minor > 1) || 00147 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 0014e 83 78 08 01 cmp DWORD PTR [rax+8], 1 00152 7c 5b jl SHORT $LN11@glfwIsVali 00154 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 0015b 83 78 0c 00 cmp DWORD PTR [rax+12], 0 0015f 7c 4e jl SHORT $LN11@glfwIsVali 00161 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00168 83 78 08 01 cmp DWORD PTR [rax+8], 1 0016c 75 0d jne SHORT $LN12@glfwIsVali 0016e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00175 83 78 0c 05 cmp DWORD PTR [rax+12], 5 00179 7f 34 jg SHORT $LN11@glfwIsVali $LN12@glfwIsVali: 0017b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00182 83 78 08 02 cmp DWORD PTR [rax+8], 2 00186 75 0d jne SHORT $LN13@glfwIsVali 00188 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 0018f 83 78 0c 01 cmp DWORD PTR [rax+12], 1 00193 7f 1a jg SHORT $LN11@glfwIsVali $LN13@glfwIsVali: 00195 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 0019c 83 78 08 03 cmp DWORD PTR [rax+8], 3 001a0 75 3b jne SHORT $LN10@glfwIsVali 001a2 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 001a9 83 78 0c 03 cmp DWORD PTR [rax+12], 3 001ad 7e 2e jle SHORT $LN10@glfwIsVali $LN11@glfwIsVali: ; 93 : (ctxconfig->major == 3 && ctxconfig->minor > 3)) ; 94 : { ; 95 : // OpenGL 1.0 is the smallest valid version ; 96 : // OpenGL 1.x series ended with version 1.5 ; 97 : // OpenGL 2.x series ended with version 2.1 ; 98 : // OpenGL 3.x series ended with version 3.3 ; 99 : // For now, let everything else through ; 100 : ; 101 : _glfwInputError(GLFW_INVALID_VALUE, 001af 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 001b6 44 8b 48 0c mov r9d, DWORD PTR [rax+12] 001ba 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 001c1 44 8b 40 08 mov r8d, DWORD PTR [rax+8] 001c5 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0BN@DHKEBMCG@Invalid?5OpenGL?5version?5?$CFi?4?$CFi@ 001cc b9 04 00 01 00 mov ecx, 65540 ; 00010004H 001d1 e8 00 00 00 00 call _glfwInputError ; 102 : "Invalid OpenGL version %i.%i", ; 103 : ctxconfig->major, ctxconfig->minor); ; 104 : return GLFW_FALSE; 001d6 33 c0 xor eax, eax 001d8 e9 f4 01 00 00 jmp $LN1@glfwIsVali $LN10@glfwIsVali: ; 105 : } ; 106 : ; 107 : if (ctxconfig->profile) 001dd 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 001e4 83 78 1c 00 cmp DWORD PTR [rax+28], 0 001e8 0f 84 82 00 00 00 je $LN14@glfwIsVali ; 108 : { ; 109 : if (ctxconfig->profile != GLFW_OPENGL_CORE_PROFILE && 001ee 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 001f5 81 78 1c 01 20 03 00 cmp DWORD PTR [rax+28], 204801 ; 00032001H 001fc 74 33 je SHORT $LN15@glfwIsVali 001fe 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00205 81 78 1c 02 20 03 00 cmp DWORD PTR [rax+28], 204802 ; 00032002H 0020c 74 23 je SHORT $LN15@glfwIsVali ; 110 : ctxconfig->profile != GLFW_OPENGL_COMPAT_PROFILE) ; 111 : { ; 112 : _glfwInputError(GLFW_INVALID_ENUM, 0020e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00215 44 8b 40 1c mov r8d, DWORD PTR [rax+28] 00219 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0BO@PCKHNBJ@Invalid?5OpenGL?5profile?50x?$CF08X@ 00220 b9 03 00 01 00 mov ecx, 65539 ; 00010003H 00225 e8 00 00 00 00 call _glfwInputError ; 113 : "Invalid OpenGL profile 0x%08X", ; 114 : ctxconfig->profile); ; 115 : return GLFW_FALSE; 0022a 33 c0 xor eax, eax 0022c e9 a0 01 00 00 jmp $LN1@glfwIsVali $LN15@glfwIsVali: ; 116 : } ; 117 : ; 118 : if (ctxconfig->major <= 2 || 00231 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00238 83 78 08 02 cmp DWORD PTR [rax+8], 2 0023c 7e 1a jle SHORT $LN17@glfwIsVali 0023e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00245 83 78 08 03 cmp DWORD PTR [rax+8], 3 00249 75 25 jne SHORT $LN16@glfwIsVali 0024b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00252 83 78 0c 02 cmp DWORD PTR [rax+12], 2 00256 7d 18 jge SHORT $LN16@glfwIsVali $LN17@glfwIsVali: ; 119 : (ctxconfig->major == 3 && ctxconfig->minor < 2)) ; 120 : { ; 121 : // Desktop OpenGL context profiles are only defined for version 3.2 ; 122 : // and above ; 123 : ; 124 : _glfwInputError(GLFW_INVALID_VALUE, 00258 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0ED@FEABOOIM@Context?5profiles?5are?5only?5defin@ 0025f b9 04 00 01 00 mov ecx, 65540 ; 00010004H 00264 e8 00 00 00 00 call _glfwInputError ; 125 : "Context profiles are only defined for OpenGL version 3.2 and above"); ; 126 : return GLFW_FALSE; 00269 33 c0 xor eax, eax 0026b e9 61 01 00 00 jmp $LN1@glfwIsVali $LN16@glfwIsVali: $LN14@glfwIsVali: ; 127 : } ; 128 : } ; 129 : ; 130 : if (ctxconfig->forward && ctxconfig->major <= 2) 00270 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00277 83 78 10 00 cmp DWORD PTR [rax+16], 0 0027b 74 25 je SHORT $LN18@glfwIsVali 0027d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00284 83 78 08 02 cmp DWORD PTR [rax+8], 2 00288 7f 18 jg SHORT $LN18@glfwIsVali ; 131 : { ; 132 : // Forward-compatible contexts are only defined for OpenGL version 3.0 and above ; 133 : _glfwInputError(GLFW_INVALID_VALUE, 0028a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0EH@CMDCLIEA@Forward?9compatibility?5is?5only?5d@ 00291 b9 04 00 01 00 mov ecx, 65540 ; 00010004H 00296 e8 00 00 00 00 call _glfwInputError ; 134 : "Forward-compatibility is only defined for OpenGL version 3.0 and above"); ; 135 : return GLFW_FALSE; 0029b 33 c0 xor eax, eax 0029d e9 2f 01 00 00 jmp $LN1@glfwIsVali $LN18@glfwIsVali: ; 136 : } ; 137 : } 002a2 e9 8b 00 00 00 jmp $LN9@glfwIsVali $LN8@glfwIsVali: ; 138 : else if (ctxconfig->client == GLFW_OPENGL_ES_API) 002a7 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 002ae 81 38 02 00 03 00 cmp DWORD PTR [rax], 196610 ; 00030002H 002b4 75 7c jne SHORT $LN19@glfwIsVali ; 139 : { ; 140 : if (ctxconfig->major < 1 || ctxconfig->minor < 0 || ; 141 : (ctxconfig->major == 1 && ctxconfig->minor > 1) || 002b6 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 002bd 83 78 08 01 cmp DWORD PTR [rax+8], 1 002c1 7c 41 jl SHORT $LN21@glfwIsVali 002c3 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 002ca 83 78 0c 00 cmp DWORD PTR [rax+12], 0 002ce 7c 34 jl SHORT $LN21@glfwIsVali 002d0 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 002d7 83 78 08 01 cmp DWORD PTR [rax+8], 1 002db 75 0d jne SHORT $LN22@glfwIsVali 002dd 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 002e4 83 78 0c 01 cmp DWORD PTR [rax+12], 1 002e8 7f 1a jg SHORT $LN21@glfwIsVali $LN22@glfwIsVali: 002ea 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 002f1 83 78 08 02 cmp DWORD PTR [rax+8], 2 002f5 75 3b jne SHORT $LN20@glfwIsVali 002f7 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 002fe 83 78 0c 00 cmp DWORD PTR [rax+12], 0 00302 7e 2e jle SHORT $LN20@glfwIsVali $LN21@glfwIsVali: ; 142 : (ctxconfig->major == 2 && ctxconfig->minor > 0)) ; 143 : { ; 144 : // OpenGL ES 1.0 is the smallest valid version ; 145 : // OpenGL ES 1.x series ended with version 1.1 ; 146 : // OpenGL ES 2.x series ended with version 2.0 ; 147 : // For now, let everything else through ; 148 : ; 149 : _glfwInputError(GLFW_INVALID_VALUE, 00304 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 0030b 44 8b 48 0c mov r9d, DWORD PTR [rax+12] 0030f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00316 44 8b 40 08 mov r8d, DWORD PTR [rax+8] 0031a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CA@LFIDGAHJ@Invalid?5OpenGL?5ES?5version?5?$CFi?4?$CFi@ 00321 b9 04 00 01 00 mov ecx, 65540 ; 00010004H 00326 e8 00 00 00 00 call _glfwInputError ; 150 : "Invalid OpenGL ES version %i.%i", ; 151 : ctxconfig->major, ctxconfig->minor); ; 152 : return GLFW_FALSE; 0032b 33 c0 xor eax, eax 0032d e9 9f 00 00 00 jmp $LN1@glfwIsVali $LN20@glfwIsVali: $LN19@glfwIsVali: $LN9@glfwIsVali: ; 153 : } ; 154 : } ; 155 : ; 156 : if (ctxconfig->robustness) 00332 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00339 83 78 20 00 cmp DWORD PTR [rax+32], 0 0033d 74 40 je SHORT $LN23@glfwIsVali ; 157 : { ; 158 : if (ctxconfig->robustness != GLFW_NO_RESET_NOTIFICATION && 0033f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00346 81 78 20 01 10 03 00 cmp DWORD PTR [rax+32], 200705 ; 00031001H 0034d 74 30 je SHORT $LN24@glfwIsVali 0034f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00356 81 78 20 02 10 03 00 cmp DWORD PTR [rax+32], 200706 ; 00031002H 0035d 74 20 je SHORT $LN24@glfwIsVali ; 159 : ctxconfig->robustness != GLFW_LOSE_CONTEXT_ON_RESET) ; 160 : { ; 161 : _glfwInputError(GLFW_INVALID_ENUM, 0035f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00366 44 8b 40 20 mov r8d, DWORD PTR [rax+32] 0036a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CH@PNNMGINB@Invalid?5context?5robustness?5mode@ 00371 b9 03 00 01 00 mov ecx, 65539 ; 00010003H 00376 e8 00 00 00 00 call _glfwInputError ; 162 : "Invalid context robustness mode 0x%08X", ; 163 : ctxconfig->robustness); ; 164 : return GLFW_FALSE; 0037b 33 c0 xor eax, eax 0037d eb 52 jmp SHORT $LN1@glfwIsVali $LN24@glfwIsVali: $LN23@glfwIsVali: ; 165 : } ; 166 : } ; 167 : ; 168 : if (ctxconfig->release) 0037f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00386 83 78 24 00 cmp DWORD PTR [rax+36], 0 0038a 74 40 je SHORT $LN25@glfwIsVali ; 169 : { ; 170 : if (ctxconfig->release != GLFW_RELEASE_BEHAVIOR_NONE && 0038c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00393 81 78 24 02 50 03 00 cmp DWORD PTR [rax+36], 217090 ; 00035002H 0039a 74 30 je SHORT $LN26@glfwIsVali 0039c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 003a3 81 78 24 01 50 03 00 cmp DWORD PTR [rax+36], 217089 ; 00035001H 003aa 74 20 je SHORT $LN26@glfwIsVali ; 171 : ctxconfig->release != GLFW_RELEASE_BEHAVIOR_FLUSH) ; 172 : { ; 173 : _glfwInputError(GLFW_INVALID_ENUM, 003ac 48 8b 85 e0 00 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 003b3 44 8b 40 24 mov r8d, DWORD PTR [rax+36] 003b7 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CI@JDDJIGNN@Invalid?5context?5release?5behavio@ 003be b9 03 00 01 00 mov ecx, 65539 ; 00010003H 003c3 e8 00 00 00 00 call _glfwInputError ; 174 : "Invalid context release behavior 0x%08X", ; 175 : ctxconfig->release); ; 176 : return GLFW_FALSE; 003c8 33 c0 xor eax, eax 003ca eb 05 jmp SHORT $LN1@glfwIsVali $LN26@glfwIsVali: $LN25@glfwIsVali: ; 177 : } ; 178 : } ; 179 : ; 180 : return GLFW_TRUE; 003cc b8 01 00 00 00 mov eax, 1 $LN1@glfwIsVali: ; 181 : } 003d1 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 003d8 5f pop rdi 003d9 5d pop rbp 003da c3 ret 0 _glfwIsValidContextConfig ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\context.c ; COMDAT _glfwRefreshContextAttribs _TEXT SEGMENT i$ = 4 previous$ = 40 version$ = 72 prefixes$ = 104 length$9 = 168 flags$10 = 196 mask$11 = 228 strategy$12 = 260 strategy$13 = 292 behavior$14 = 324 glClear$15 = 360 __$ArrayPad$ = 568 window$ = 608 ctxconfig$ = 616 _glfwRefreshContextAttribs PROC ; COMDAT ; 349 : { $LN49: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 78 02 00 00 sub rsp, 632 ; 00000278H 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00018 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 0001d b9 62 00 00 00 mov ecx, 98 ; 00000062H 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00027 f3 ab rep stosd 00029 48 8b 8c 24 98 02 00 00 mov rcx, QWORD PTR [rsp+664] 00031 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00038 48 33 c5 xor rax, rbp 0003b 48 89 85 38 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00042 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__3C97119B_context@c 00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 350 : int i; ; 351 : _GLFWwindow* previous; ; 352 : const char* version; ; 353 : const char* prefixes[] = 0004e 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0O@ENGHJHNB@OpenGL?5ES?9CM?5@ 00055 48 89 45 68 mov QWORD PTR prefixes$[rbp], rax 00059 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0O@EMKFPNOG@OpenGL?5ES?9CL?5@ 00060 48 89 45 70 mov QWORD PTR prefixes$[rbp+8], rax 00064 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0L@JLFHOCGA@OpenGL?5ES?5@ 0006b 48 89 45 78 mov QWORD PTR prefixes$[rbp+16], rax 0006f 48 c7 85 80 00 00 00 00 00 00 00 mov QWORD PTR prefixes$[rbp+24], 0 ; 354 : { ; 355 : "OpenGL ES-CM ", ; 356 : "OpenGL ES-CL ", ; 357 : "OpenGL ES ", ; 358 : NULL ; 359 : }; ; 360 : ; 361 : window->context.source = ctxconfig->source; 0007a 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 00081 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR ctxconfig$[rbp] 00088 8b 49 04 mov ecx, DWORD PTR [rcx+4] 0008b 89 88 0c 02 00 00 mov DWORD PTR [rax+524], ecx ; 362 : window->context.client = GLFW_OPENGL_API; 00091 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 00098 c7 80 08 02 00 00 01 00 03 00 mov DWORD PTR [rax+520], 196609 ; 00030001H ; 363 : ; 364 : previous = _glfwPlatformGetTls(&_glfw.contextSlot); 000a2 48 8d 0d a4 19 00 00 lea rcx, OFFSET FLAT:_glfw+6564 000a9 e8 00 00 00 00 call _glfwPlatformGetTls 000ae 48 89 45 28 mov QWORD PTR previous$[rbp], rax ; 365 : glfwMakeContextCurrent((GLFWwindow*)window); 000b2 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR window$[rbp] 000b9 e8 00 00 00 00 call glfwMakeContextCurrent ; 366 : ; 367 : window->context.GetIntegerv = (PFNGLGETINTEGERVPROC) 000be 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0O@DHHDCCLF@glGetIntegerv@ 000c5 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 000cc ff 90 70 02 00 00 call QWORD PTR [rax+624] 000d2 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR window$[rbp] 000d9 48 89 81 40 02 00 00 mov QWORD PTR [rcx+576], rax ; 368 : window->context.getProcAddress("glGetIntegerv"); ; 369 : window->context.GetString = (PFNGLGETSTRINGPROC) 000e0 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@OPOBFDCB@glGetString@ 000e7 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 000ee ff 90 70 02 00 00 call QWORD PTR [rax+624] 000f4 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR window$[rbp] 000fb 48 89 81 48 02 00 00 mov QWORD PTR [rcx+584], rax ; 370 : window->context.getProcAddress("glGetString"); ; 371 : if (!window->context.GetIntegerv || !window->context.GetString) 00102 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 00109 48 83 b8 40 02 00 00 00 cmp QWORD PTR [rax+576], 0 00111 74 11 je SHORT $LN6@glfwRefres 00113 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 0011a 48 83 b8 48 02 00 00 00 cmp QWORD PTR [rax+584], 0 00122 75 21 jne SHORT $LN5@glfwRefres $LN6@glfwRefres: ; 372 : { ; 373 : _glfwInputError(GLFW_PLATFORM_ERROR, "Entry point retrieval is broken"); 00124 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CA@LDAANPIM@Entry?5point?5retrieval?5is?5broken@ 0012b b9 08 00 01 00 mov ecx, 65544 ; 00010008H 00130 e8 00 00 00 00 call _glfwInputError ; 374 : glfwMakeContextCurrent((GLFWwindow*)previous); 00135 48 8b 4d 28 mov rcx, QWORD PTR previous$[rbp] 00139 e8 00 00 00 00 call glfwMakeContextCurrent ; 375 : return GLFW_FALSE; 0013e 33 c0 xor eax, eax 00140 e9 d6 05 00 00 jmp $LN1@glfwRefres $LN5@glfwRefres: ; 376 : } ; 377 : ; 378 : version = (const char*)window->context.GetString(GL_VERSION); 00145 b9 02 1f 00 00 mov ecx, 7938 ; 00001f02H 0014a 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 00151 ff 90 48 02 00 00 call QWORD PTR [rax+584] 00157 48 89 45 48 mov QWORD PTR version$[rbp], rax ; 379 : if (!version) 0015b 48 83 7d 48 00 cmp QWORD PTR version$[rbp], 0 00160 75 43 jne SHORT $LN7@glfwRefres ; 380 : { ; 381 : if (ctxconfig->client == GLFW_OPENGL_API) 00162 48 8b 85 68 02 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00169 81 38 01 00 03 00 cmp DWORD PTR [rax], 196609 ; 00030001H 0016f 75 13 jne SHORT $LN8@glfwRefres ; 382 : { ; 383 : _glfwInputError(GLFW_PLATFORM_ERROR, 00171 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CK@DKAFEDIC@OpenGL?5version?5string?5retrieval@ 00178 b9 08 00 01 00 mov ecx, 65544 ; 00010008H 0017d e8 00 00 00 00 call _glfwInputError ; 384 : "OpenGL version string retrieval is broken"); ; 385 : } 00182 eb 11 jmp SHORT $LN9@glfwRefres $LN8@glfwRefres: ; 386 : else ; 387 : { ; 388 : _glfwInputError(GLFW_PLATFORM_ERROR, 00184 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CN@GOPDCGGI@OpenGL?5ES?5version?5string?5retrie@ 0018b b9 08 00 01 00 mov ecx, 65544 ; 00010008H 00190 e8 00 00 00 00 call _glfwInputError $LN9@glfwRefres: ; 389 : "OpenGL ES version string retrieval is broken"); ; 390 : } ; 391 : ; 392 : glfwMakeContextCurrent((GLFWwindow*)previous); 00195 48 8b 4d 28 mov rcx, QWORD PTR previous$[rbp] 00199 e8 00 00 00 00 call glfwMakeContextCurrent ; 393 : return GLFW_FALSE; 0019e 33 c0 xor eax, eax 001a0 e9 76 05 00 00 jmp $LN1@glfwRefres $LN7@glfwRefres: ; 394 : } ; 395 : ; 396 : for (i = 0; prefixes[i]; i++) 001a5 c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 001ac eb 08 jmp SHORT $LN4@glfwRefres $LN2@glfwRefres: 001ae 8b 45 04 mov eax, DWORD PTR i$[rbp] 001b1 ff c0 inc eax 001b3 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@glfwRefres: 001b6 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 001ba 48 83 7c c5 68 00 cmp QWORD PTR prefixes$[rbp+rax*8], 0 001c0 74 5d je SHORT $LN3@glfwRefres ; 397 : { ; 398 : const size_t length = strlen(prefixes[i]); 001c2 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 001c6 48 8b 4c c5 68 mov rcx, QWORD PTR prefixes$[rbp+rax*8] 001cb e8 00 00 00 00 call strlen 001d0 48 89 85 a8 00 00 00 mov QWORD PTR length$9[rbp], rax ; 399 : ; 400 : if (strncmp(version, prefixes[i], length) == 0) 001d7 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 001db 4c 8b 85 a8 00 00 00 mov r8, QWORD PTR length$9[rbp] 001e2 48 8b 54 c5 68 mov rdx, QWORD PTR prefixes$[rbp+rax*8] 001e7 48 8b 4d 48 mov rcx, QWORD PTR version$[rbp] 001eb ff 15 00 00 00 00 call QWORD PTR __imp_strncmp 001f1 85 c0 test eax, eax 001f3 75 28 jne SHORT $LN10@glfwRefres ; 401 : { ; 402 : version += length; 001f5 48 8b 85 a8 00 00 00 mov rax, QWORD PTR length$9[rbp] 001fc 48 8b 4d 48 mov rcx, QWORD PTR version$[rbp] 00200 48 03 c8 add rcx, rax 00203 48 8b c1 mov rax, rcx 00206 48 89 45 48 mov QWORD PTR version$[rbp], rax ; 403 : window->context.client = GLFW_OPENGL_ES_API; 0020a 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 00211 c7 80 08 02 00 00 02 00 03 00 mov DWORD PTR [rax+520], 196610 ; 00030002H ; 404 : break; 0021b eb 02 jmp SHORT $LN3@glfwRefres $LN10@glfwRefres: ; 405 : } ; 406 : } 0021d eb 8f jmp SHORT $LN2@glfwRefres $LN3@glfwRefres: ; 407 : ; 408 : if (!sscanf(version, "%d.%d.%d", 0021f 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 00226 48 05 18 02 00 00 add rax, 536 ; 00000218H 0022c 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR window$[rbp] 00233 48 81 c1 14 02 00 00 add rcx, 532 ; 00000214H 0023a 48 8b 95 60 02 00 00 mov rdx, QWORD PTR window$[rbp] 00241 48 81 c2 10 02 00 00 add rdx, 528 ; 00000210H 00248 48 89 44 24 20 mov QWORD PTR [rsp+32], rax 0024d 4c 8b c9 mov r9, rcx 00250 4c 8b c2 mov r8, rdx 00253 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_08FOJKHHJA@?$CFd?4?$CFd?4?$CFd@ 0025a 48 8b 4d 48 mov rcx, QWORD PTR version$[rbp] 0025e e8 00 00 00 00 call sscanf 00263 85 c0 test eax, eax 00265 75 47 jne SHORT $LN11@glfwRefres ; 409 : &window->context.major, ; 410 : &window->context.minor, ; 411 : &window->context.revision)) ; 412 : { ; 413 : if (window->context.client == GLFW_OPENGL_API) 00267 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 0026e 81 b8 08 02 00 00 01 00 03 00 cmp DWORD PTR [rax+520], 196609 ; 00030001H 00278 75 13 jne SHORT $LN12@glfwRefres ; 414 : { ; 415 : _glfwInputError(GLFW_PLATFORM_ERROR, 0027a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CK@DDNMEIKD@No?5version?5found?5in?5OpenGL?5vers@ 00281 b9 08 00 01 00 mov ecx, 65544 ; 00010008H 00286 e8 00 00 00 00 call _glfwInputError ; 416 : "No version found in OpenGL version string"); ; 417 : } 0028b eb 11 jmp SHORT $LN13@glfwRefres $LN12@glfwRefres: ; 418 : else ; 419 : { ; 420 : _glfwInputError(GLFW_PLATFORM_ERROR, 0028d 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CN@FALFGDO@No?5version?5found?5in?5OpenGL?5ES?5v@ 00294 b9 08 00 01 00 mov ecx, 65544 ; 00010008H 00299 e8 00 00 00 00 call _glfwInputError $LN13@glfwRefres: ; 421 : "No version found in OpenGL ES version string"); ; 422 : } ; 423 : ; 424 : glfwMakeContextCurrent((GLFWwindow*)previous); 0029e 48 8b 4d 28 mov rcx, QWORD PTR previous$[rbp] 002a2 e8 00 00 00 00 call glfwMakeContextCurrent ; 425 : return GLFW_FALSE; 002a7 33 c0 xor eax, eax 002a9 e9 6d 04 00 00 jmp $LN1@glfwRefres $LN11@glfwRefres: ; 426 : } ; 427 : ; 428 : if (window->context.major < ctxconfig->major || 002ae 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 002b5 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR ctxconfig$[rbp] 002bc 8b 49 08 mov ecx, DWORD PTR [rcx+8] 002bf 39 88 10 02 00 00 cmp DWORD PTR [rax+528], ecx 002c5 7c 3a jl SHORT $LN15@glfwRefres 002c7 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 002ce 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR ctxconfig$[rbp] 002d5 8b 49 08 mov ecx, DWORD PTR [rcx+8] 002d8 39 88 10 02 00 00 cmp DWORD PTR [rax+528], ecx 002de 0f 85 d4 00 00 00 jne $LN14@glfwRefres 002e4 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 002eb 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR ctxconfig$[rbp] 002f2 8b 49 0c mov ecx, DWORD PTR [rcx+12] 002f5 39 88 14 02 00 00 cmp DWORD PTR [rax+532], ecx 002fb 0f 8d b7 00 00 00 jge $LN14@glfwRefres $LN15@glfwRefres: ; 429 : (window->context.major == ctxconfig->major && ; 430 : window->context.minor < ctxconfig->minor)) ; 431 : { ; 432 : // The desired OpenGL version is greater than the actual version ; 433 : // This only happens if the machine lacks {GLX|WGL}_ARB_create_context ; 434 : // /and/ the user has requested an OpenGL version greater than 1.0 ; 435 : ; 436 : // For API consistency, we emulate the behavior of the ; 437 : // {GLX|WGL}_ARB_create_context extension and fail here ; 438 : ; 439 : if (window->context.client == GLFW_OPENGL_API) 00301 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 00308 81 b8 08 02 00 00 01 00 03 00 cmp DWORD PTR [rax+520], 196609 ; 00030001H 00312 75 4b jne SHORT $LN16@glfwRefres ; 440 : { ; 441 : _glfwInputError(GLFW_VERSION_UNAVAILABLE, 00314 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 0031b 8b 80 14 02 00 00 mov eax, DWORD PTR [rax+532] 00321 89 44 24 28 mov DWORD PTR [rsp+40], eax 00325 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 0032c 8b 80 10 02 00 00 mov eax, DWORD PTR [rax+528] 00332 89 44 24 20 mov DWORD PTR [rsp+32], eax 00336 48 8b 85 68 02 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 0033d 44 8b 48 0c mov r9d, DWORD PTR [rax+12] 00341 48 8b 85 68 02 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00348 44 8b 40 08 mov r8d, DWORD PTR [rax+8] 0034c 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0DC@KIAJNHJN@Requested?5OpenGL?5version?5?$CFi?4?$CFi?0@ 00353 b9 07 00 01 00 mov ecx, 65543 ; 00010007H 00358 e8 00 00 00 00 call _glfwInputError ; 442 : "Requested OpenGL version %i.%i, got version %i.%i", ; 443 : ctxconfig->major, ctxconfig->minor, ; 444 : window->context.major, window->context.minor); ; 445 : } 0035d eb 49 jmp SHORT $LN17@glfwRefres $LN16@glfwRefres: ; 446 : else ; 447 : { ; 448 : _glfwInputError(GLFW_VERSION_UNAVAILABLE, 0035f 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 00366 8b 80 14 02 00 00 mov eax, DWORD PTR [rax+532] 0036c 89 44 24 28 mov DWORD PTR [rsp+40], eax 00370 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 00377 8b 80 10 02 00 00 mov eax, DWORD PTR [rax+528] 0037d 89 44 24 20 mov DWORD PTR [rsp+32], eax 00381 48 8b 85 68 02 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00388 44 8b 48 0c mov r9d, DWORD PTR [rax+12] 0038c 48 8b 85 68 02 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 00393 44 8b 40 08 mov r8d, DWORD PTR [rax+8] 00397 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0DF@EFFMOKHE@Requested?5OpenGL?5ES?5version?5?$CFi?4@ 0039e b9 07 00 01 00 mov ecx, 65543 ; 00010007H 003a3 e8 00 00 00 00 call _glfwInputError $LN17@glfwRefres: ; 449 : "Requested OpenGL ES version %i.%i, got version %i.%i", ; 450 : ctxconfig->major, ctxconfig->minor, ; 451 : window->context.major, window->context.minor); ; 452 : } ; 453 : ; 454 : glfwMakeContextCurrent((GLFWwindow*)previous); 003a8 48 8b 4d 28 mov rcx, QWORD PTR previous$[rbp] 003ac e8 00 00 00 00 call glfwMakeContextCurrent ; 455 : return GLFW_FALSE; 003b1 33 c0 xor eax, eax 003b3 e9 63 03 00 00 jmp $LN1@glfwRefres $LN14@glfwRefres: ; 456 : } ; 457 : ; 458 : if (window->context.major >= 3) 003b8 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 003bf 83 b8 10 02 00 00 03 cmp DWORD PTR [rax+528], 3 003c6 7c 54 jl SHORT $LN18@glfwRefres ; 459 : { ; 460 : // OpenGL 3.0+ uses a different function for extension string retrieval ; 461 : // We cache it here instead of in glfwExtensionSupported mostly to alert ; 462 : // users as early as possible that their build may be broken ; 463 : ; 464 : window->context.GetStringi = (PFNGLGETSTRINGIPROC) 003c8 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@PILJCBOD@glGetStringi@ 003cf 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 003d6 ff 90 70 02 00 00 call QWORD PTR [rax+624] 003dc 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR window$[rbp] 003e3 48 89 81 38 02 00 00 mov QWORD PTR [rcx+568], rax ; 465 : window->context.getProcAddress("glGetStringi"); ; 466 : if (!window->context.GetStringi) 003ea 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 003f1 48 83 b8 38 02 00 00 00 cmp QWORD PTR [rax+568], 0 003f9 75 21 jne SHORT $LN19@glfwRefres ; 467 : { ; 468 : _glfwInputError(GLFW_PLATFORM_ERROR, 003fb 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CA@LDAANPIM@Entry?5point?5retrieval?5is?5broken@ 00402 b9 08 00 01 00 mov ecx, 65544 ; 00010008H 00407 e8 00 00 00 00 call _glfwInputError ; 469 : "Entry point retrieval is broken"); ; 470 : glfwMakeContextCurrent((GLFWwindow*)previous); 0040c 48 8b 4d 28 mov rcx, QWORD PTR previous$[rbp] 00410 e8 00 00 00 00 call glfwMakeContextCurrent ; 471 : return GLFW_FALSE; 00415 33 c0 xor eax, eax 00417 e9 ff 02 00 00 jmp $LN1@glfwRefres $LN19@glfwRefres: $LN18@glfwRefres: ; 472 : } ; 473 : } ; 474 : ; 475 : if (window->context.client == GLFW_OPENGL_API) 0041c 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 00423 81 b8 08 02 00 00 01 00 03 00 cmp DWORD PTR [rax+520], 196609 ; 00030001H 0042d 0f 85 cc 01 00 00 jne $LN20@glfwRefres ; 476 : { ; 477 : // Read back context flags (OpenGL 3.0 and above) ; 478 : if (window->context.major >= 3) 00433 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 0043a 83 b8 10 02 00 00 03 cmp DWORD PTR [rax+528], 3 00441 0f 8c a3 00 00 00 jl $LN22@glfwRefres ; 479 : { ; 480 : GLint flags; ; 481 : window->context.GetIntegerv(GL_CONTEXT_FLAGS, &flags); 00447 48 8d 95 c4 00 00 00 lea rdx, QWORD PTR flags$10[rbp] 0044e b9 1e 82 00 00 mov ecx, 33310 ; 0000821eH 00453 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 0045a ff 90 40 02 00 00 call QWORD PTR [rax+576] ; 482 : ; 483 : if (flags & GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT) 00460 8b 85 c4 00 00 00 mov eax, DWORD PTR flags$10[rbp] 00466 83 e0 01 and eax, 1 00469 85 c0 test eax, eax 0046b 74 11 je SHORT $LN23@glfwRefres ; 484 : window->context.forward = GLFW_TRUE; 0046d 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 00474 c7 80 1c 02 00 00 01 00 00 00 mov DWORD PTR [rax+540], 1 $LN23@glfwRefres: ; 485 : ; 486 : if (flags & GL_CONTEXT_FLAG_DEBUG_BIT) 0047e 8b 85 c4 00 00 00 mov eax, DWORD PTR flags$10[rbp] 00484 83 e0 02 and eax, 2 00487 85 c0 test eax, eax 00489 74 13 je SHORT $LN24@glfwRefres ; 487 : window->context.debug = GLFW_TRUE; 0048b 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 00492 c7 80 20 02 00 00 01 00 00 00 mov DWORD PTR [rax+544], 1 0049c eb 2e jmp SHORT $LN25@glfwRefres $LN24@glfwRefres: ; 488 : else if (glfwExtensionSupported("GL_ARB_debug_output") && 0049e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BE@OHIPHHMJ@GL_ARB_debug_output@ 004a5 e8 00 00 00 00 call glfwExtensionSupported 004aa 85 c0 test eax, eax 004ac 74 1e je SHORT $LN26@glfwRefres 004ae 48 8b 85 68 02 00 00 mov rax, QWORD PTR ctxconfig$[rbp] 004b5 83 78 14 00 cmp DWORD PTR [rax+20], 0 004b9 74 11 je SHORT $LN26@glfwRefres ; 489 : ctxconfig->debug) ; 490 : { ; 491 : // HACK: This is a workaround for older drivers (pre KHR_debug) ; 492 : // not setting the debug bit in the context flags for ; 493 : // debug contexts ; 494 : window->context.debug = GLFW_TRUE; 004bb 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 004c2 c7 80 20 02 00 00 01 00 00 00 mov DWORD PTR [rax+544], 1 $LN26@glfwRefres: $LN25@glfwRefres: ; 495 : } ; 496 : ; 497 : if (flags & GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR) 004cc 8b 85 c4 00 00 00 mov eax, DWORD PTR flags$10[rbp] 004d2 83 e0 08 and eax, 8 004d5 85 c0 test eax, eax 004d7 74 11 je SHORT $LN27@glfwRefres ; 498 : window->context.noerror = GLFW_TRUE; 004d9 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 004e0 c7 80 24 02 00 00 01 00 00 00 mov DWORD PTR [rax+548], 1 $LN27@glfwRefres: $LN22@glfwRefres: ; 499 : } ; 500 : ; 501 : // Read back OpenGL context profile (OpenGL 3.2 and above) ; 502 : if (window->context.major >= 4 || 004ea 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 004f1 83 b8 10 02 00 00 04 cmp DWORD PTR [rax+528], 4 004f8 7d 24 jge SHORT $LN29@glfwRefres 004fa 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 00501 83 b8 10 02 00 00 03 cmp DWORD PTR [rax+528], 3 00508 0f 85 8a 00 00 00 jne $LN28@glfwRefres 0050e 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 00515 83 b8 14 02 00 00 02 cmp DWORD PTR [rax+532], 2 0051c 7c 7a jl SHORT $LN28@glfwRefres $LN29@glfwRefres: ; 503 : (window->context.major == 3 && window->context.minor >= 2)) ; 504 : { ; 505 : GLint mask; ; 506 : window->context.GetIntegerv(GL_CONTEXT_PROFILE_MASK, &mask); 0051e 48 8d 95 e4 00 00 00 lea rdx, QWORD PTR mask$11[rbp] 00525 b9 26 91 00 00 mov ecx, 37158 ; 00009126H 0052a 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 00531 ff 90 40 02 00 00 call QWORD PTR [rax+576] ; 507 : ; 508 : if (mask & GL_CONTEXT_COMPATIBILITY_PROFILE_BIT) 00537 8b 85 e4 00 00 00 mov eax, DWORD PTR mask$11[rbp] 0053d 83 e0 02 and eax, 2 00540 85 c0 test eax, eax 00542 74 13 je SHORT $LN30@glfwRefres ; 509 : window->context.profile = GLFW_OPENGL_COMPAT_PROFILE; 00544 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 0054b c7 80 28 02 00 00 02 20 03 00 mov DWORD PTR [rax+552], 204802 ; 00032002H 00555 eb 41 jmp SHORT $LN31@glfwRefres $LN30@glfwRefres: ; 510 : else if (mask & GL_CONTEXT_CORE_PROFILE_BIT) 00557 8b 85 e4 00 00 00 mov eax, DWORD PTR mask$11[rbp] 0055d 83 e0 01 and eax, 1 00560 85 c0 test eax, eax 00562 74 13 je SHORT $LN32@glfwRefres ; 511 : window->context.profile = GLFW_OPENGL_CORE_PROFILE; 00564 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 0056b c7 80 28 02 00 00 01 20 03 00 mov DWORD PTR [rax+552], 204801 ; 00032001H 00575 eb 21 jmp SHORT $LN33@glfwRefres $LN32@glfwRefres: ; 512 : else if (glfwExtensionSupported("GL_ARB_compatibility")) 00577 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BF@CJMIIMBG@GL_ARB_compatibility@ 0057e e8 00 00 00 00 call glfwExtensionSupported 00583 85 c0 test eax, eax 00585 74 11 je SHORT $LN34@glfwRefres ; 513 : { ; 514 : // HACK: This is a workaround for the compatibility profile bit ; 515 : // not being set in the context flags if an OpenGL 3.2+ ; 516 : // context was created without having requested a specific ; 517 : // version ; 518 : window->context.profile = GLFW_OPENGL_COMPAT_PROFILE; 00587 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 0058e c7 80 28 02 00 00 02 20 03 00 mov DWORD PTR [rax+552], 204802 ; 00032002H $LN34@glfwRefres: $LN33@glfwRefres: $LN31@glfwRefres: $LN28@glfwRefres: ; 519 : } ; 520 : } ; 521 : ; 522 : // Read back robustness strategy ; 523 : if (glfwExtensionSupported("GL_ARB_robustness")) 00598 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BC@EOBKJDCM@GL_ARB_robustness@ 0059f e8 00 00 00 00 call glfwExtensionSupported 005a4 85 c0 test eax, eax 005a6 74 55 je SHORT $LN35@glfwRefres ; 524 : { ; 525 : // NOTE: We avoid using the context flags for detection, as they are ; 526 : // only present from 3.0 while the extension applies from 1.1 ; 527 : ; 528 : GLint strategy; ; 529 : window->context.GetIntegerv(GL_RESET_NOTIFICATION_STRATEGY_ARB, 005a8 48 8d 95 04 01 00 00 lea rdx, QWORD PTR strategy$12[rbp] 005af b9 56 82 00 00 mov ecx, 33366 ; 00008256H 005b4 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 005bb ff 90 40 02 00 00 call QWORD PTR [rax+576] ; 530 : &strategy); ; 531 : ; 532 : if (strategy == GL_LOSE_CONTEXT_ON_RESET_ARB) 005c1 81 bd 04 01 00 00 52 82 00 00 cmp DWORD PTR strategy$12[rbp], 33362 ; 00008252H 005cb 75 13 jne SHORT $LN36@glfwRefres ; 533 : window->context.robustness = GLFW_LOSE_CONTEXT_ON_RESET; 005cd 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 005d4 c7 80 2c 02 00 00 02 10 03 00 mov DWORD PTR [rax+556], 200706 ; 00031002H 005de eb 1d jmp SHORT $LN37@glfwRefres $LN36@glfwRefres: ; 534 : else if (strategy == GL_NO_RESET_NOTIFICATION_ARB) 005e0 81 bd 04 01 00 00 61 82 00 00 cmp DWORD PTR strategy$12[rbp], 33377 ; 00008261H 005ea 75 11 jne SHORT $LN38@glfwRefres ; 535 : window->context.robustness = GLFW_NO_RESET_NOTIFICATION; 005ec 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 005f3 c7 80 2c 02 00 00 01 10 03 00 mov DWORD PTR [rax+556], 200705 ; 00031001H $LN38@glfwRefres: $LN37@glfwRefres: $LN35@glfwRefres: ; 536 : } ; 537 : } 005fd eb 65 jmp SHORT $LN21@glfwRefres $LN20@glfwRefres: ; 538 : else ; 539 : { ; 540 : // Read back robustness strategy ; 541 : if (glfwExtensionSupported("GL_EXT_robustness")) 005ff 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BC@CLDFFND@GL_EXT_robustness@ 00606 e8 00 00 00 00 call glfwExtensionSupported 0060b 85 c0 test eax, eax 0060d 74 55 je SHORT $LN39@glfwRefres ; 542 : { ; 543 : // NOTE: The values of these constants match those of the OpenGL ARB ; 544 : // one, so we can reuse them here ; 545 : ; 546 : GLint strategy; ; 547 : window->context.GetIntegerv(GL_RESET_NOTIFICATION_STRATEGY_ARB, 0060f 48 8d 95 24 01 00 00 lea rdx, QWORD PTR strategy$13[rbp] 00616 b9 56 82 00 00 mov ecx, 33366 ; 00008256H 0061b 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 00622 ff 90 40 02 00 00 call QWORD PTR [rax+576] ; 548 : &strategy); ; 549 : ; 550 : if (strategy == GL_LOSE_CONTEXT_ON_RESET_ARB) 00628 81 bd 24 01 00 00 52 82 00 00 cmp DWORD PTR strategy$13[rbp], 33362 ; 00008252H 00632 75 13 jne SHORT $LN40@glfwRefres ; 551 : window->context.robustness = GLFW_LOSE_CONTEXT_ON_RESET; 00634 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 0063b c7 80 2c 02 00 00 02 10 03 00 mov DWORD PTR [rax+556], 200706 ; 00031002H 00645 eb 1d jmp SHORT $LN41@glfwRefres $LN40@glfwRefres: ; 552 : else if (strategy == GL_NO_RESET_NOTIFICATION_ARB) 00647 81 bd 24 01 00 00 61 82 00 00 cmp DWORD PTR strategy$13[rbp], 33377 ; 00008261H 00651 75 11 jne SHORT $LN42@glfwRefres ; 553 : window->context.robustness = GLFW_NO_RESET_NOTIFICATION; 00653 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 0065a c7 80 2c 02 00 00 01 10 03 00 mov DWORD PTR [rax+556], 200705 ; 00031001H $LN42@glfwRefres: $LN41@glfwRefres: $LN39@glfwRefres: $LN21@glfwRefres: ; 554 : } ; 555 : } ; 556 : ; 557 : if (glfwExtensionSupported("GL_KHR_context_flush_control")) 00664 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BN@FNDGKECA@GL_KHR_context_flush_control@ 0066b e8 00 00 00 00 call glfwExtensionSupported 00670 85 c0 test eax, eax 00672 74 52 je SHORT $LN43@glfwRefres ; 558 : { ; 559 : GLint behavior; ; 560 : window->context.GetIntegerv(GL_CONTEXT_RELEASE_BEHAVIOR, &behavior); 00674 48 8d 95 44 01 00 00 lea rdx, QWORD PTR behavior$14[rbp] 0067b b9 fb 82 00 00 mov ecx, 33531 ; 000082fbH 00680 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 00687 ff 90 40 02 00 00 call QWORD PTR [rax+576] ; 561 : ; 562 : if (behavior == GL_NONE) 0068d 83 bd 44 01 00 00 00 cmp DWORD PTR behavior$14[rbp], 0 00694 75 13 jne SHORT $LN44@glfwRefres ; 563 : window->context.release = GLFW_RELEASE_BEHAVIOR_NONE; 00696 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 0069d c7 80 30 02 00 00 02 50 03 00 mov DWORD PTR [rax+560], 217090 ; 00035002H 006a7 eb 1d jmp SHORT $LN45@glfwRefres $LN44@glfwRefres: ; 564 : else if (behavior == GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH) 006a9 81 bd 44 01 00 00 fc 82 00 00 cmp DWORD PTR behavior$14[rbp], 33532 ; 000082fcH 006b3 75 11 jne SHORT $LN46@glfwRefres ; 565 : window->context.release = GLFW_RELEASE_BEHAVIOR_FLUSH; 006b5 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 006bc c7 80 30 02 00 00 01 50 03 00 mov DWORD PTR [rax+560], 217089 ; 00035001H $LN46@glfwRefres: $LN45@glfwRefres: $LN43@glfwRefres: ; 566 : } ; 567 : ; 568 : // Clearing the front buffer to black to avoid garbage pixels left over from ; 569 : // previous uses of our bit of VRAM ; 570 : { ; 571 : PFNGLCLEARPROC glClear = (PFNGLCLEARPROC) 006c6 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07IBAPPAHJ@glClear@ 006cd 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 006d4 ff 90 70 02 00 00 call QWORD PTR [rax+624] 006da 48 89 85 68 01 00 00 mov QWORD PTR glClear$15[rbp], rax ; 572 : window->context.getProcAddress("glClear"); ; 573 : glClear(GL_COLOR_BUFFER_BIT); 006e1 b9 00 40 00 00 mov ecx, 16384 ; 00004000H 006e6 ff 95 68 01 00 00 call QWORD PTR glClear$15[rbp] ; 574 : ; 575 : if (window->doublebuffer) 006ec 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 006f3 83 78 30 00 cmp DWORD PTR [rax+48], 0 006f7 74 14 je SHORT $LN47@glfwRefres ; 576 : window->context.swapBuffers(window); 006f9 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR window$[rbp] 00700 48 8b 85 60 02 00 00 mov rax, QWORD PTR window$[rbp] 00707 ff 90 58 02 00 00 call QWORD PTR [rax+600] $LN47@glfwRefres: ; 577 : } ; 578 : ; 579 : glfwMakeContextCurrent((GLFWwindow*)previous); 0070d 48 8b 4d 28 mov rcx, QWORD PTR previous$[rbp] 00711 e8 00 00 00 00 call glfwMakeContextCurrent ; 580 : return GLFW_TRUE; 00716 b8 01 00 00 00 mov eax, 1 $LN1@glfwRefres: ; 581 : } 0071b 48 8b f8 mov rdi, rax 0071e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 00722 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:_glfwRefreshContextAttribs$rtcFrameData 00729 e8 00 00 00 00 call _RTC_CheckStackVars 0072e 48 8b c7 mov rax, rdi 00731 48 8b 8d 38 02 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00738 48 33 cd xor rcx, rbp 0073b e8 00 00 00 00 call __security_check_cookie 00740 48 8d a5 48 02 00 00 lea rsp, QWORD PTR [rbp+584] 00747 5f pop rdi 00748 5d pop rbp 00749 c3 ret 0 _glfwRefreshContextAttribs ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\context.c ; COMDAT _glfwChooseFBConfig _TEXT SEGMENT i$ = 4 missing$ = 36 leastMissing$ = 68 colorDiff$ = 100 leastColorDiff$ = 132 extraDiff$ = 164 leastExtraDiff$ = 196 current$ = 232 closest$ = 264 desired$ = 512 alternatives$ = 520 count$ = 528 _glfwChooseFBConfig PROC ; COMDAT ; 188 : { $LN31: 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi 00011 48 81 ec 08 02 00 00 sub rsp, 520 ; 00000208H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__3C97119B_context@c 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 189 : unsigned int i; ; 190 : unsigned int missing, leastMissing = UINT_MAX; 00029 c7 45 44 ff ff ff ff mov DWORD PTR leastMissing$[rbp], -1 ; ffffffffH ; 191 : unsigned int colorDiff, leastColorDiff = UINT_MAX; 00030 c7 85 84 00 00 00 ff ff ff ff mov DWORD PTR leastColorDiff$[rbp], -1 ; ffffffffH ; 192 : unsigned int extraDiff, leastExtraDiff = UINT_MAX; 0003a c7 85 c4 00 00 00 ff ff ff ff mov DWORD PTR leastExtraDiff$[rbp], -1 ; ffffffffH ; 193 : const _GLFWfbconfig* current; ; 194 : const _GLFWfbconfig* closest = NULL; 00044 48 c7 85 08 01 00 00 00 00 00 00 mov QWORD PTR closest$[rbp], 0 ; 195 : ; 196 : for (i = 0; i < count; i++) 0004f c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 00056 eb 08 jmp SHORT $LN4@glfwChoose $LN2@glfwChoose: 00058 8b 45 04 mov eax, DWORD PTR i$[rbp] 0005b ff c0 inc eax 0005d 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@glfwChoose: 00060 8b 85 10 02 00 00 mov eax, DWORD PTR count$[rbp] 00066 39 45 04 cmp DWORD PTR i$[rbp], eax 00069 0f 83 0f 05 00 00 jae $LN3@glfwChoose ; 197 : { ; 198 : current = alternatives + i; 0006f 8b 45 04 mov eax, DWORD PTR i$[rbp] 00072 48 6b c0 48 imul rax, rax, 72 ; 00000048H 00076 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR alternatives$[rbp] 0007d 48 03 c8 add rcx, rax 00080 48 8b c1 mov rax, rcx 00083 48 89 85 e8 00 00 00 mov QWORD PTR current$[rbp], rax ; 199 : ; 200 : if (desired->stereo > 0 && current->stereo == 0) 0008a 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 00091 83 78 2c 00 cmp DWORD PTR [rax+44], 0 00095 7e 0f jle SHORT $LN5@glfwChoose 00097 48 8b 85 e8 00 00 00 mov rax, QWORD PTR current$[rbp] 0009e 83 78 2c 00 cmp DWORD PTR [rax+44], 0 000a2 75 02 jne SHORT $LN5@glfwChoose ; 201 : { ; 202 : // Stereo is a hard constraint ; 203 : continue; 000a4 eb b2 jmp SHORT $LN2@glfwChoose $LN5@glfwChoose: ; 204 : } ; 205 : ; 206 : // Count number of missing buffers ; 207 : { ; 208 : missing = 0; 000a6 c7 45 24 00 00 00 00 mov DWORD PTR missing$[rbp], 0 ; 209 : ; 210 : if (desired->alphaBits > 0 && current->alphaBits == 0) 000ad 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 000b4 83 78 0c 00 cmp DWORD PTR [rax+12], 0 000b8 7e 15 jle SHORT $LN6@glfwChoose 000ba 48 8b 85 e8 00 00 00 mov rax, QWORD PTR current$[rbp] 000c1 83 78 0c 00 cmp DWORD PTR [rax+12], 0 000c5 75 08 jne SHORT $LN6@glfwChoose ; 211 : missing++; 000c7 8b 45 24 mov eax, DWORD PTR missing$[rbp] 000ca ff c0 inc eax 000cc 89 45 24 mov DWORD PTR missing$[rbp], eax $LN6@glfwChoose: ; 212 : ; 213 : if (desired->depthBits > 0 && current->depthBits == 0) 000cf 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 000d6 83 78 10 00 cmp DWORD PTR [rax+16], 0 000da 7e 15 jle SHORT $LN7@glfwChoose 000dc 48 8b 85 e8 00 00 00 mov rax, QWORD PTR current$[rbp] 000e3 83 78 10 00 cmp DWORD PTR [rax+16], 0 000e7 75 08 jne SHORT $LN7@glfwChoose ; 214 : missing++; 000e9 8b 45 24 mov eax, DWORD PTR missing$[rbp] 000ec ff c0 inc eax 000ee 89 45 24 mov DWORD PTR missing$[rbp], eax $LN7@glfwChoose: ; 215 : ; 216 : if (desired->stencilBits > 0 && current->stencilBits == 0) 000f1 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 000f8 83 78 14 00 cmp DWORD PTR [rax+20], 0 000fc 7e 15 jle SHORT $LN8@glfwChoose 000fe 48 8b 85 e8 00 00 00 mov rax, QWORD PTR current$[rbp] 00105 83 78 14 00 cmp DWORD PTR [rax+20], 0 00109 75 08 jne SHORT $LN8@glfwChoose ; 217 : missing++; 0010b 8b 45 24 mov eax, DWORD PTR missing$[rbp] 0010e ff c0 inc eax 00110 89 45 24 mov DWORD PTR missing$[rbp], eax $LN8@glfwChoose: ; 218 : ; 219 : if (desired->auxBuffers > 0 && 00113 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 0011a 83 78 28 00 cmp DWORD PTR [rax+40], 0 0011e 7e 36 jle SHORT $LN9@glfwChoose 00120 48 8b 85 e8 00 00 00 mov rax, QWORD PTR current$[rbp] 00127 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR desired$[rbp] 0012e 8b 49 28 mov ecx, DWORD PTR [rcx+40] 00131 39 48 28 cmp DWORD PTR [rax+40], ecx 00134 7d 20 jge SHORT $LN9@glfwChoose ; 220 : current->auxBuffers < desired->auxBuffers) ; 221 : { ; 222 : missing += desired->auxBuffers - current->auxBuffers; 00136 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 0013d 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR current$[rbp] 00144 8b 49 28 mov ecx, DWORD PTR [rcx+40] 00147 8b 40 28 mov eax, DWORD PTR [rax+40] 0014a 2b c1 sub eax, ecx 0014c 8b 4d 24 mov ecx, DWORD PTR missing$[rbp] 0014f 03 c8 add ecx, eax 00151 8b c1 mov eax, ecx 00153 89 45 24 mov DWORD PTR missing$[rbp], eax $LN9@glfwChoose: ; 223 : } ; 224 : ; 225 : if (desired->samples > 0 && current->samples == 0) 00156 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 0015d 83 78 30 00 cmp DWORD PTR [rax+48], 0 00161 7e 15 jle SHORT $LN10@glfwChoose 00163 48 8b 85 e8 00 00 00 mov rax, QWORD PTR current$[rbp] 0016a 83 78 30 00 cmp DWORD PTR [rax+48], 0 0016e 75 08 jne SHORT $LN10@glfwChoose ; 226 : { ; 227 : // Technically, several multisampling buffers could be ; 228 : // involved, but that's a lower level implementation detail and ; 229 : // not important to us here, so we count them as one ; 230 : missing++; 00170 8b 45 24 mov eax, DWORD PTR missing$[rbp] 00173 ff c0 inc eax 00175 89 45 24 mov DWORD PTR missing$[rbp], eax $LN10@glfwChoose: ; 231 : } ; 232 : ; 233 : if (desired->transparent != current->transparent) 00178 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 0017f 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR current$[rbp] 00186 8b 49 3c mov ecx, DWORD PTR [rcx+60] 00189 39 48 3c cmp DWORD PTR [rax+60], ecx 0018c 74 08 je SHORT $LN11@glfwChoose ; 234 : missing++; 0018e 8b 45 24 mov eax, DWORD PTR missing$[rbp] 00191 ff c0 inc eax 00193 89 45 24 mov DWORD PTR missing$[rbp], eax $LN11@glfwChoose: ; 235 : } ; 236 : ; 237 : // These polynomials make many small channel size differences matter ; 238 : // less than one large channel size difference ; 239 : ; 240 : // Calculate color channel size difference value ; 241 : { ; 242 : colorDiff = 0; 00196 c7 45 64 00 00 00 00 mov DWORD PTR colorDiff$[rbp], 0 ; 243 : ; 244 : if (desired->redBits != GLFW_DONT_CARE) 0019d 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 001a4 83 38 ff cmp DWORD PTR [rax], -1 001a7 74 35 je SHORT $LN12@glfwChoose ; 245 : { ; 246 : colorDiff += (desired->redBits - current->redBits) * 001a9 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 001b0 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR current$[rbp] 001b7 8b 09 mov ecx, DWORD PTR [rcx] 001b9 8b 00 mov eax, DWORD PTR [rax] 001bb 2b c1 sub eax, ecx 001bd 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR desired$[rbp] 001c4 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR current$[rbp] 001cb 8b 12 mov edx, DWORD PTR [rdx] 001cd 8b 09 mov ecx, DWORD PTR [rcx] 001cf 2b ca sub ecx, edx 001d1 0f af c1 imul eax, ecx 001d4 8b 4d 64 mov ecx, DWORD PTR colorDiff$[rbp] 001d7 03 c8 add ecx, eax 001d9 8b c1 mov eax, ecx 001db 89 45 64 mov DWORD PTR colorDiff$[rbp], eax $LN12@glfwChoose: ; 247 : (desired->redBits - current->redBits); ; 248 : } ; 249 : ; 250 : if (desired->greenBits != GLFW_DONT_CARE) 001de 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 001e5 83 78 04 ff cmp DWORD PTR [rax+4], -1 001e9 74 39 je SHORT $LN13@glfwChoose ; 251 : { ; 252 : colorDiff += (desired->greenBits - current->greenBits) * 001eb 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 001f2 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR current$[rbp] 001f9 8b 49 04 mov ecx, DWORD PTR [rcx+4] 001fc 8b 40 04 mov eax, DWORD PTR [rax+4] 001ff 2b c1 sub eax, ecx 00201 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR desired$[rbp] 00208 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR current$[rbp] 0020f 8b 52 04 mov edx, DWORD PTR [rdx+4] 00212 8b 49 04 mov ecx, DWORD PTR [rcx+4] 00215 2b ca sub ecx, edx 00217 0f af c1 imul eax, ecx 0021a 8b 4d 64 mov ecx, DWORD PTR colorDiff$[rbp] 0021d 03 c8 add ecx, eax 0021f 8b c1 mov eax, ecx 00221 89 45 64 mov DWORD PTR colorDiff$[rbp], eax $LN13@glfwChoose: ; 253 : (desired->greenBits - current->greenBits); ; 254 : } ; 255 : ; 256 : if (desired->blueBits != GLFW_DONT_CARE) 00224 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 0022b 83 78 08 ff cmp DWORD PTR [rax+8], -1 0022f 74 39 je SHORT $LN14@glfwChoose ; 257 : { ; 258 : colorDiff += (desired->blueBits - current->blueBits) * 00231 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 00238 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR current$[rbp] 0023f 8b 49 08 mov ecx, DWORD PTR [rcx+8] 00242 8b 40 08 mov eax, DWORD PTR [rax+8] 00245 2b c1 sub eax, ecx 00247 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR desired$[rbp] 0024e 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR current$[rbp] 00255 8b 52 08 mov edx, DWORD PTR [rdx+8] 00258 8b 49 08 mov ecx, DWORD PTR [rcx+8] 0025b 2b ca sub ecx, edx 0025d 0f af c1 imul eax, ecx 00260 8b 4d 64 mov ecx, DWORD PTR colorDiff$[rbp] 00263 03 c8 add ecx, eax 00265 8b c1 mov eax, ecx 00267 89 45 64 mov DWORD PTR colorDiff$[rbp], eax $LN14@glfwChoose: ; 259 : (desired->blueBits - current->blueBits); ; 260 : } ; 261 : } ; 262 : ; 263 : // Calculate non-color channel size difference value ; 264 : { ; 265 : extraDiff = 0; 0026a c7 85 a4 00 00 00 00 00 00 00 mov DWORD PTR extraDiff$[rbp], 0 ; 266 : ; 267 : if (desired->alphaBits != GLFW_DONT_CARE) 00274 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 0027b 83 78 0c ff cmp DWORD PTR [rax+12], -1 0027f 74 3f je SHORT $LN15@glfwChoose ; 268 : { ; 269 : extraDiff += (desired->alphaBits - current->alphaBits) * 00281 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 00288 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR current$[rbp] 0028f 8b 49 0c mov ecx, DWORD PTR [rcx+12] 00292 8b 40 0c mov eax, DWORD PTR [rax+12] 00295 2b c1 sub eax, ecx 00297 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR desired$[rbp] 0029e 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR current$[rbp] 002a5 8b 52 0c mov edx, DWORD PTR [rdx+12] 002a8 8b 49 0c mov ecx, DWORD PTR [rcx+12] 002ab 2b ca sub ecx, edx 002ad 0f af c1 imul eax, ecx 002b0 8b 8d a4 00 00 00 mov ecx, DWORD PTR extraDiff$[rbp] 002b6 03 c8 add ecx, eax 002b8 8b c1 mov eax, ecx 002ba 89 85 a4 00 00 00 mov DWORD PTR extraDiff$[rbp], eax $LN15@glfwChoose: ; 270 : (desired->alphaBits - current->alphaBits); ; 271 : } ; 272 : ; 273 : if (desired->depthBits != GLFW_DONT_CARE) 002c0 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 002c7 83 78 10 ff cmp DWORD PTR [rax+16], -1 002cb 74 3f je SHORT $LN16@glfwChoose ; 274 : { ; 275 : extraDiff += (desired->depthBits - current->depthBits) * 002cd 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 002d4 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR current$[rbp] 002db 8b 49 10 mov ecx, DWORD PTR [rcx+16] 002de 8b 40 10 mov eax, DWORD PTR [rax+16] 002e1 2b c1 sub eax, ecx 002e3 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR desired$[rbp] 002ea 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR current$[rbp] 002f1 8b 52 10 mov edx, DWORD PTR [rdx+16] 002f4 8b 49 10 mov ecx, DWORD PTR [rcx+16] 002f7 2b ca sub ecx, edx 002f9 0f af c1 imul eax, ecx 002fc 8b 8d a4 00 00 00 mov ecx, DWORD PTR extraDiff$[rbp] 00302 03 c8 add ecx, eax 00304 8b c1 mov eax, ecx 00306 89 85 a4 00 00 00 mov DWORD PTR extraDiff$[rbp], eax $LN16@glfwChoose: ; 276 : (desired->depthBits - current->depthBits); ; 277 : } ; 278 : ; 279 : if (desired->stencilBits != GLFW_DONT_CARE) 0030c 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 00313 83 78 14 ff cmp DWORD PTR [rax+20], -1 00317 74 3f je SHORT $LN17@glfwChoose ; 280 : { ; 281 : extraDiff += (desired->stencilBits - current->stencilBits) * 00319 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 00320 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR current$[rbp] 00327 8b 49 14 mov ecx, DWORD PTR [rcx+20] 0032a 8b 40 14 mov eax, DWORD PTR [rax+20] 0032d 2b c1 sub eax, ecx 0032f 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR desired$[rbp] 00336 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR current$[rbp] 0033d 8b 52 14 mov edx, DWORD PTR [rdx+20] 00340 8b 49 14 mov ecx, DWORD PTR [rcx+20] 00343 2b ca sub ecx, edx 00345 0f af c1 imul eax, ecx 00348 8b 8d a4 00 00 00 mov ecx, DWORD PTR extraDiff$[rbp] 0034e 03 c8 add ecx, eax 00350 8b c1 mov eax, ecx 00352 89 85 a4 00 00 00 mov DWORD PTR extraDiff$[rbp], eax $LN17@glfwChoose: ; 282 : (desired->stencilBits - current->stencilBits); ; 283 : } ; 284 : ; 285 : if (desired->accumRedBits != GLFW_DONT_CARE) 00358 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 0035f 83 78 18 ff cmp DWORD PTR [rax+24], -1 00363 74 3f je SHORT $LN18@glfwChoose ; 286 : { ; 287 : extraDiff += (desired->accumRedBits - current->accumRedBits) * 00365 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 0036c 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR current$[rbp] 00373 8b 49 18 mov ecx, DWORD PTR [rcx+24] 00376 8b 40 18 mov eax, DWORD PTR [rax+24] 00379 2b c1 sub eax, ecx 0037b 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR desired$[rbp] 00382 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR current$[rbp] 00389 8b 52 18 mov edx, DWORD PTR [rdx+24] 0038c 8b 49 18 mov ecx, DWORD PTR [rcx+24] 0038f 2b ca sub ecx, edx 00391 0f af c1 imul eax, ecx 00394 8b 8d a4 00 00 00 mov ecx, DWORD PTR extraDiff$[rbp] 0039a 03 c8 add ecx, eax 0039c 8b c1 mov eax, ecx 0039e 89 85 a4 00 00 00 mov DWORD PTR extraDiff$[rbp], eax $LN18@glfwChoose: ; 288 : (desired->accumRedBits - current->accumRedBits); ; 289 : } ; 290 : ; 291 : if (desired->accumGreenBits != GLFW_DONT_CARE) 003a4 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 003ab 83 78 1c ff cmp DWORD PTR [rax+28], -1 003af 74 3f je SHORT $LN19@glfwChoose ; 292 : { ; 293 : extraDiff += (desired->accumGreenBits - current->accumGreenBits) * 003b1 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 003b8 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR current$[rbp] 003bf 8b 49 1c mov ecx, DWORD PTR [rcx+28] 003c2 8b 40 1c mov eax, DWORD PTR [rax+28] 003c5 2b c1 sub eax, ecx 003c7 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR desired$[rbp] 003ce 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR current$[rbp] 003d5 8b 52 1c mov edx, DWORD PTR [rdx+28] 003d8 8b 49 1c mov ecx, DWORD PTR [rcx+28] 003db 2b ca sub ecx, edx 003dd 0f af c1 imul eax, ecx 003e0 8b 8d a4 00 00 00 mov ecx, DWORD PTR extraDiff$[rbp] 003e6 03 c8 add ecx, eax 003e8 8b c1 mov eax, ecx 003ea 89 85 a4 00 00 00 mov DWORD PTR extraDiff$[rbp], eax $LN19@glfwChoose: ; 294 : (desired->accumGreenBits - current->accumGreenBits); ; 295 : } ; 296 : ; 297 : if (desired->accumBlueBits != GLFW_DONT_CARE) 003f0 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 003f7 83 78 20 ff cmp DWORD PTR [rax+32], -1 003fb 74 3f je SHORT $LN20@glfwChoose ; 298 : { ; 299 : extraDiff += (desired->accumBlueBits - current->accumBlueBits) * 003fd 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 00404 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR current$[rbp] 0040b 8b 49 20 mov ecx, DWORD PTR [rcx+32] 0040e 8b 40 20 mov eax, DWORD PTR [rax+32] 00411 2b c1 sub eax, ecx 00413 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR desired$[rbp] 0041a 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR current$[rbp] 00421 8b 52 20 mov edx, DWORD PTR [rdx+32] 00424 8b 49 20 mov ecx, DWORD PTR [rcx+32] 00427 2b ca sub ecx, edx 00429 0f af c1 imul eax, ecx 0042c 8b 8d a4 00 00 00 mov ecx, DWORD PTR extraDiff$[rbp] 00432 03 c8 add ecx, eax 00434 8b c1 mov eax, ecx 00436 89 85 a4 00 00 00 mov DWORD PTR extraDiff$[rbp], eax $LN20@glfwChoose: ; 300 : (desired->accumBlueBits - current->accumBlueBits); ; 301 : } ; 302 : ; 303 : if (desired->accumAlphaBits != GLFW_DONT_CARE) 0043c 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 00443 83 78 24 ff cmp DWORD PTR [rax+36], -1 00447 74 3f je SHORT $LN21@glfwChoose ; 304 : { ; 305 : extraDiff += (desired->accumAlphaBits - current->accumAlphaBits) * 00449 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 00450 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR current$[rbp] 00457 8b 49 24 mov ecx, DWORD PTR [rcx+36] 0045a 8b 40 24 mov eax, DWORD PTR [rax+36] 0045d 2b c1 sub eax, ecx 0045f 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR desired$[rbp] 00466 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR current$[rbp] 0046d 8b 52 24 mov edx, DWORD PTR [rdx+36] 00470 8b 49 24 mov ecx, DWORD PTR [rcx+36] 00473 2b ca sub ecx, edx 00475 0f af c1 imul eax, ecx 00478 8b 8d a4 00 00 00 mov ecx, DWORD PTR extraDiff$[rbp] 0047e 03 c8 add ecx, eax 00480 8b c1 mov eax, ecx 00482 89 85 a4 00 00 00 mov DWORD PTR extraDiff$[rbp], eax $LN21@glfwChoose: ; 306 : (desired->accumAlphaBits - current->accumAlphaBits); ; 307 : } ; 308 : ; 309 : if (desired->samples != GLFW_DONT_CARE) 00488 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 0048f 83 78 30 ff cmp DWORD PTR [rax+48], -1 00493 74 3f je SHORT $LN22@glfwChoose ; 310 : { ; 311 : extraDiff += (desired->samples - current->samples) * 00495 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 0049c 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR current$[rbp] 004a3 8b 49 30 mov ecx, DWORD PTR [rcx+48] 004a6 8b 40 30 mov eax, DWORD PTR [rax+48] 004a9 2b c1 sub eax, ecx 004ab 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR desired$[rbp] 004b2 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR current$[rbp] 004b9 8b 52 30 mov edx, DWORD PTR [rdx+48] 004bc 8b 49 30 mov ecx, DWORD PTR [rcx+48] 004bf 2b ca sub ecx, edx 004c1 0f af c1 imul eax, ecx 004c4 8b 8d a4 00 00 00 mov ecx, DWORD PTR extraDiff$[rbp] 004ca 03 c8 add ecx, eax 004cc 8b c1 mov eax, ecx 004ce 89 85 a4 00 00 00 mov DWORD PTR extraDiff$[rbp], eax $LN22@glfwChoose: ; 312 : (desired->samples - current->samples); ; 313 : } ; 314 : ; 315 : if (desired->sRGB && !current->sRGB) 004d4 48 8b 85 00 02 00 00 mov rax, QWORD PTR desired$[rbp] 004db 83 78 34 00 cmp DWORD PTR [rax+52], 0 004df 74 1b je SHORT $LN23@glfwChoose 004e1 48 8b 85 e8 00 00 00 mov rax, QWORD PTR current$[rbp] 004e8 83 78 34 00 cmp DWORD PTR [rax+52], 0 004ec 75 0e jne SHORT $LN23@glfwChoose ; 316 : extraDiff++; 004ee 8b 85 a4 00 00 00 mov eax, DWORD PTR extraDiff$[rbp] 004f4 ff c0 inc eax 004f6 89 85 a4 00 00 00 mov DWORD PTR extraDiff$[rbp], eax $LN23@glfwChoose: ; 317 : } ; 318 : ; 319 : // Figure out if the current one is better than the best one found so far ; 320 : // Least number of missing buffers is the most important heuristic, ; 321 : // then color buffer size match and lastly size match for other buffers ; 322 : ; 323 : if (missing < leastMissing) 004fc 8b 45 44 mov eax, DWORD PTR leastMissing$[rbp] 004ff 39 45 24 cmp DWORD PTR missing$[rbp], eax 00502 73 10 jae SHORT $LN24@glfwChoose ; 324 : closest = current; 00504 48 8b 85 e8 00 00 00 mov rax, QWORD PTR current$[rbp] 0050b 48 89 85 08 01 00 00 mov QWORD PTR closest$[rbp], rax 00512 eb 3a jmp SHORT $LN25@glfwChoose $LN24@glfwChoose: ; 325 : else if (missing == leastMissing) 00514 8b 45 44 mov eax, DWORD PTR leastMissing$[rbp] 00517 39 45 24 cmp DWORD PTR missing$[rbp], eax 0051a 75 32 jne SHORT $LN26@glfwChoose ; 326 : { ; 327 : if ((colorDiff < leastColorDiff) || 0051c 8b 85 84 00 00 00 mov eax, DWORD PTR leastColorDiff$[rbp] 00522 39 45 64 cmp DWORD PTR colorDiff$[rbp], eax 00525 72 19 jb SHORT $LN28@glfwChoose 00527 8b 85 84 00 00 00 mov eax, DWORD PTR leastColorDiff$[rbp] 0052d 39 45 64 cmp DWORD PTR colorDiff$[rbp], eax 00530 75 1c jne SHORT $LN27@glfwChoose 00532 8b 85 c4 00 00 00 mov eax, DWORD PTR leastExtraDiff$[rbp] 00538 39 85 a4 00 00 00 cmp DWORD PTR extraDiff$[rbp], eax 0053e 73 0e jae SHORT $LN27@glfwChoose $LN28@glfwChoose: ; 328 : (colorDiff == leastColorDiff && extraDiff < leastExtraDiff)) ; 329 : { ; 330 : closest = current; 00540 48 8b 85 e8 00 00 00 mov rax, QWORD PTR current$[rbp] 00547 48 89 85 08 01 00 00 mov QWORD PTR closest$[rbp], rax $LN27@glfwChoose: $LN26@glfwChoose: $LN25@glfwChoose: ; 331 : } ; 332 : } ; 333 : ; 334 : if (current == closest) 0054e 48 8b 85 08 01 00 00 mov rax, QWORD PTR closest$[rbp] 00555 48 39 85 e8 00 00 00 cmp QWORD PTR current$[rbp], rax 0055c 75 1b jne SHORT $LN29@glfwChoose ; 335 : { ; 336 : leastMissing = missing; 0055e 8b 45 24 mov eax, DWORD PTR missing$[rbp] 00561 89 45 44 mov DWORD PTR leastMissing$[rbp], eax ; 337 : leastColorDiff = colorDiff; 00564 8b 45 64 mov eax, DWORD PTR colorDiff$[rbp] 00567 89 85 84 00 00 00 mov DWORD PTR leastColorDiff$[rbp], eax ; 338 : leastExtraDiff = extraDiff; 0056d 8b 85 a4 00 00 00 mov eax, DWORD PTR extraDiff$[rbp] 00573 89 85 c4 00 00 00 mov DWORD PTR leastExtraDiff$[rbp], eax $LN29@glfwChoose: ; 339 : } ; 340 : } 00579 e9 da fa ff ff jmp $LN2@glfwChoose $LN3@glfwChoose: ; 341 : ; 342 : return closest; 0057e 48 8b 85 08 01 00 00 mov rax, QWORD PTR closest$[rbp] ; 343 : } 00585 48 8d a5 e8 01 00 00 lea rsp, QWORD PTR [rbp+488] 0058c 5f pop rdi 0058d 5d pop rbp 0058e c3 ret 0 _glfwChooseFBConfig ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\context.c ; COMDAT _glfwStringInExtensionString _TEXT SEGMENT start$ = 8 where$1 = 40 terminator$2 = 72 string$ = 320 extensions$ = 328 _glfwStringInExtensionString PROC ; COMDAT ; 586 : { $LN11: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__3C97119B_context@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 587 : const char* start = extensions; 00024 48 8b 85 48 01 00 00 mov rax, QWORD PTR extensions$[rbp] 0002b 48 89 45 08 mov QWORD PTR start$[rbp], rax $LN2@glfwString: ; 588 : ; 589 : for (;;) ; 590 : { ; 591 : const char* where; ; 592 : const char* terminator; ; 593 : ; 594 : where = strstr(start, string); 0002f 48 8b 95 40 01 00 00 mov rdx, QWORD PTR string$[rbp] 00036 48 8b 4d 08 mov rcx, QWORD PTR start$[rbp] 0003a e8 00 00 00 00 call strstr 0003f 48 89 45 28 mov QWORD PTR where$1[rbp], rax ; 595 : if (!where) 00043 48 83 7d 28 00 cmp QWORD PTR where$1[rbp], 0 00048 75 04 jne SHORT $LN5@glfwString ; 596 : return GLFW_FALSE; 0004a 33 c0 xor eax, eax 0004c eb 59 jmp SHORT $LN1@glfwString $LN5@glfwString: ; 597 : ; 598 : terminator = where + strlen(string); 0004e 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR string$[rbp] 00055 e8 00 00 00 00 call strlen 0005a 48 8b 4d 28 mov rcx, QWORD PTR where$1[rbp] 0005e 48 03 c8 add rcx, rax 00061 48 8b c1 mov rax, rcx 00064 48 89 45 48 mov QWORD PTR terminator$2[rbp], rax ; 599 : if (where == start || *(where - 1) == ' ') 00068 48 8b 45 08 mov rax, QWORD PTR start$[rbp] 0006c 48 39 45 28 cmp QWORD PTR where$1[rbp], rax 00070 74 0d je SHORT $LN7@glfwString 00072 48 8b 45 28 mov rax, QWORD PTR where$1[rbp] 00076 0f be 40 ff movsx eax, BYTE PTR [rax-1] 0007a 83 f8 20 cmp eax, 32 ; 00000020H 0007d 75 19 jne SHORT $LN6@glfwString $LN7@glfwString: ; 600 : { ; 601 : if (*terminator == ' ' || *terminator == '\0') 0007f 48 8b 45 48 mov rax, QWORD PTR terminator$2[rbp] 00083 0f be 00 movsx eax, BYTE PTR [rax] 00086 83 f8 20 cmp eax, 32 ; 00000020H 00089 74 0b je SHORT $LN9@glfwString 0008b 48 8b 45 48 mov rax, QWORD PTR terminator$2[rbp] 0008f 0f be 00 movsx eax, BYTE PTR [rax] 00092 85 c0 test eax, eax 00094 75 02 jne SHORT $LN8@glfwString $LN9@glfwString: ; 602 : break; 00096 eb 0a jmp SHORT $LN3@glfwString $LN8@glfwString: $LN6@glfwString: ; 603 : } ; 604 : ; 605 : start = terminator; 00098 48 8b 45 48 mov rax, QWORD PTR terminator$2[rbp] 0009c 48 89 45 08 mov QWORD PTR start$[rbp], rax ; 606 : } 000a0 eb 8d jmp SHORT $LN2@glfwString $LN3@glfwString: ; 607 : ; 608 : return GLFW_TRUE; 000a2 b8 01 00 00 00 mov eax, 1 $LN1@glfwString: ; 609 : } 000a7 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 000ae 5f pop rdi 000af 5d pop rbp 000b0 c3 ret 0 _glfwStringInExtensionString ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\context.c ; COMDAT glfwGetProcAddress _TEXT SEGMENT window$ = 8 procname$ = 256 glfwGetProcAddress PROC ; COMDAT ; 749 : { $LN6: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__3C97119B_context@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 750 : _GLFWwindow* window; ; 751 : assert(procname != NULL); 0001f 48 83 bd 00 01 00 00 00 cmp QWORD PTR procname$[rbp], 0 00027 75 1c jne SHORT $LN5@glfwGetPro 00029 41 b8 ef 02 00 00 mov r8d, 751 ; 000002efH 0002f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1LM@EKCBKLBC@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@ 00036 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CC@BJDHFMNM@?$AAp?$AAr?$AAo?$AAc?$AAn?$AAa?$AAm?$AAe?$AA?5?$AA?$CB?$AA?$DN?$AA?5?$AAN?$AAU?$AAL@ 0003d ff 15 00 00 00 00 call QWORD PTR __imp__wassert 00043 33 c0 xor eax, eax $LN5@glfwGetPro: ; 752 : ; 753 : _GLFW_REQUIRE_INIT_OR_RETURN(NULL); 00045 83 3d 00 00 00 00 00 cmp DWORD PTR _glfw, 0 0004c 75 10 jne SHORT $LN2@glfwGetPro 0004e 33 d2 xor edx, edx 00050 b9 01 00 01 00 mov ecx, 65537 ; 00010001H 00055 e8 00 00 00 00 call _glfwInputError 0005a 33 c0 xor eax, eax 0005c eb 3d jmp SHORT $LN1@glfwGetPro $LN2@glfwGetPro: ; 754 : ; 755 : window = _glfwPlatformGetTls(&_glfw.contextSlot); 0005e 48 8d 0d a4 19 00 00 lea rcx, OFFSET FLAT:_glfw+6564 00065 e8 00 00 00 00 call _glfwPlatformGetTls 0006a 48 89 45 08 mov QWORD PTR window$[rbp], rax ; 756 : if (!window) 0006e 48 83 7d 08 00 cmp QWORD PTR window$[rbp], 0 00073 75 15 jne SHORT $LN3@glfwGetPro ; 757 : { ; 758 : _glfwInputError(GLFW_NO_CURRENT_CONTEXT, 00075 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0EH@LGPPFAO@Cannot?5query?5entry?5point?5withou@ 0007c b9 02 00 01 00 mov ecx, 65538 ; 00010002H 00081 e8 00 00 00 00 call _glfwInputError ; 759 : "Cannot query entry point without a current OpenGL or OpenGL ES context"); ; 760 : return NULL; 00086 33 c0 xor eax, eax 00088 eb 11 jmp SHORT $LN1@glfwGetPro $LN3@glfwGetPro: ; 761 : } ; 762 : ; 763 : return window->context.getProcAddress(procname); 0008a 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR procname$[rbp] 00091 48 8b 45 08 mov rax, QWORD PTR window$[rbp] 00095 ff 90 70 02 00 00 call QWORD PTR [rax+624] $LN1@glfwGetPro: ; 764 : } 0009b 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 000a2 5f pop rdi 000a3 5d pop rbp 000a4 c3 ret 0 glfwGetProcAddress ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\context.c ; COMDAT glfwExtensionSupported _TEXT SEGMENT window$ = 8 i$4 = 36 count$5 = 68 en$6 = 104 extensions$7 = 136 __$ArrayPad$ = 344 extension$ = 384 glfwExtensionSupported PROC ; COMDAT ; 683 : { $LN16: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00018 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00022 f3 ab rep stosd 00024 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00033 48 33 c5 xor rax, rbp 00036 48 89 85 58 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0003d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__3C97119B_context@c 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 684 : _GLFWwindow* window; ; 685 : assert(extension != NULL); 00049 48 83 bd 80 01 00 00 00 cmp QWORD PTR extension$[rbp], 0 00051 75 1c jne SHORT $LN15@glfwExtens 00053 41 b8 ad 02 00 00 mov r8d, 685 ; 000002adH 00059 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1LM@EKCBKLBC@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@ 00060 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CE@LFEPMALP@?$AAe?$AAx?$AAt?$AAe?$AAn?$AAs?$AAi?$AAo?$AAn?$AA?5?$AA?$CB?$AA?$DN?$AA?5?$AAN?$AAU@ 00067 ff 15 00 00 00 00 call QWORD PTR __imp__wassert 0006d 33 c0 xor eax, eax $LN15@glfwExtens: ; 686 : ; 687 : _GLFW_REQUIRE_INIT_OR_RETURN(GLFW_FALSE); 0006f 83 3d 00 00 00 00 00 cmp DWORD PTR _glfw, 0 00076 75 13 jne SHORT $LN5@glfwExtens 00078 33 d2 xor edx, edx 0007a b9 01 00 01 00 mov ecx, 65537 ; 00010001H 0007f e8 00 00 00 00 call _glfwInputError 00084 33 c0 xor eax, eax 00086 e9 4a 01 00 00 jmp $LN1@glfwExtens $LN5@glfwExtens: ; 688 : ; 689 : window = _glfwPlatformGetTls(&_glfw.contextSlot); 0008b 48 8d 0d a4 19 00 00 lea rcx, OFFSET FLAT:_glfw+6564 00092 e8 00 00 00 00 call _glfwPlatformGetTls 00097 48 89 45 08 mov QWORD PTR window$[rbp], rax ; 690 : if (!window) 0009b 48 83 7d 08 00 cmp QWORD PTR window$[rbp], 0 000a0 75 18 jne SHORT $LN6@glfwExtens ; 691 : { ; 692 : _glfwInputError(GLFW_NO_CURRENT_CONTEXT, 000a2 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0EF@NMJGLODJ@Cannot?5query?5extension?5without?5@ 000a9 b9 02 00 01 00 mov ecx, 65538 ; 00010002H 000ae e8 00 00 00 00 call _glfwInputError ; 693 : "Cannot query extension without a current OpenGL or OpenGL ES context"); ; 694 : return GLFW_FALSE; 000b3 33 c0 xor eax, eax 000b5 e9 1b 01 00 00 jmp $LN1@glfwExtens $LN6@glfwExtens: ; 695 : } ; 696 : ; 697 : if (*extension == '\0') 000ba 48 8b 85 80 01 00 00 mov rax, QWORD PTR extension$[rbp] 000c1 0f be 00 movsx eax, BYTE PTR [rax] 000c4 85 c0 test eax, eax 000c6 75 18 jne SHORT $LN7@glfwExtens ; 698 : { ; 699 : _glfwInputError(GLFW_INVALID_VALUE, "Extension name cannot be an empty string"); 000c8 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CJ@JDBBFPLM@Extension?5name?5cannot?5be?5an?5emp@ 000cf b9 04 00 01 00 mov ecx, 65540 ; 00010004H 000d4 e8 00 00 00 00 call _glfwInputError ; 700 : return GLFW_FALSE; 000d9 33 c0 xor eax, eax 000db e9 f5 00 00 00 jmp $LN1@glfwExtens $LN7@glfwExtens: ; 701 : } ; 702 : ; 703 : if (window->context.major >= 3) 000e0 48 8b 45 08 mov rax, QWORD PTR window$[rbp] 000e4 83 b8 10 02 00 00 03 cmp DWORD PTR [rax+528], 3 000eb 0f 8c 80 00 00 00 jl $LN8@glfwExtens ; 704 : { ; 705 : int i; ; 706 : GLint count; ; 707 : ; 708 : // Check if extension is in the modern OpenGL extensions string list ; 709 : ; 710 : window->context.GetIntegerv(GL_NUM_EXTENSIONS, &count); 000f1 48 8d 55 44 lea rdx, QWORD PTR count$5[rbp] 000f5 b9 1d 82 00 00 mov ecx, 33309 ; 0000821dH 000fa 48 8b 45 08 mov rax, QWORD PTR window$[rbp] 000fe ff 90 40 02 00 00 call QWORD PTR [rax+576] ; 711 : ; 712 : for (i = 0; i < count; i++) 00104 c7 45 24 00 00 00 00 mov DWORD PTR i$4[rbp], 0 0010b eb 08 jmp SHORT $LN4@glfwExtens $LN2@glfwExtens: 0010d 8b 45 24 mov eax, DWORD PTR i$4[rbp] 00110 ff c0 inc eax 00112 89 45 24 mov DWORD PTR i$4[rbp], eax $LN4@glfwExtens: 00115 8b 45 44 mov eax, DWORD PTR count$5[rbp] 00118 39 45 24 cmp DWORD PTR i$4[rbp], eax 0011b 7d 52 jge SHORT $LN3@glfwExtens ; 713 : { ; 714 : const char* en = (const char*) 0011d 8b 55 24 mov edx, DWORD PTR i$4[rbp] 00120 b9 03 1f 00 00 mov ecx, 7939 ; 00001f03H 00125 48 8b 45 08 mov rax, QWORD PTR window$[rbp] 00129 ff 90 38 02 00 00 call QWORD PTR [rax+568] 0012f 48 89 45 68 mov QWORD PTR en$6[rbp], rax ; 715 : window->context.GetStringi(GL_EXTENSIONS, i); ; 716 : if (!en) 00133 48 83 7d 68 00 cmp QWORD PTR en$6[rbp], 0 00138 75 18 jne SHORT $LN10@glfwExtens ; 717 : { ; 718 : _glfwInputError(GLFW_PLATFORM_ERROR, 0013a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CF@KMMHNOMI@Extension?5string?5retrieval?5is?5b@ 00141 b9 08 00 01 00 mov ecx, 65544 ; 00010008H 00146 e8 00 00 00 00 call _glfwInputError ; 719 : "Extension string retrieval is broken"); ; 720 : return GLFW_FALSE; 0014b 33 c0 xor eax, eax 0014d e9 83 00 00 00 jmp $LN1@glfwExtens $LN10@glfwExtens: ; 721 : } ; 722 : ; 723 : if (strcmp(en, extension) == 0) 00152 48 8b 95 80 01 00 00 mov rdx, QWORD PTR extension$[rbp] 00159 48 8b 4d 68 mov rcx, QWORD PTR en$6[rbp] 0015d e8 00 00 00 00 call strcmp 00162 85 c0 test eax, eax 00164 75 07 jne SHORT $LN11@glfwExtens ; 724 : return GLFW_TRUE; 00166 b8 01 00 00 00 mov eax, 1 0016b eb 68 jmp SHORT $LN1@glfwExtens $LN11@glfwExtens: ; 725 : } 0016d eb 9e jmp SHORT $LN2@glfwExtens $LN3@glfwExtens: ; 726 : } 0016f eb 53 jmp SHORT $LN9@glfwExtens $LN8@glfwExtens: ; 727 : else ; 728 : { ; 729 : // Check if extension is in the old style OpenGL extensions string ; 730 : ; 731 : const char* extensions = (const char*) 00171 b9 03 1f 00 00 mov ecx, 7939 ; 00001f03H 00176 48 8b 45 08 mov rax, QWORD PTR window$[rbp] 0017a ff 90 48 02 00 00 call QWORD PTR [rax+584] 00180 48 89 85 88 00 00 00 mov QWORD PTR extensions$7[rbp], rax ; 732 : window->context.GetString(GL_EXTENSIONS); ; 733 : if (!extensions) 00187 48 83 bd 88 00 00 00 00 cmp QWORD PTR extensions$7[rbp], 0 0018f 75 15 jne SHORT $LN12@glfwExtens ; 734 : { ; 735 : _glfwInputError(GLFW_PLATFORM_ERROR, 00191 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CF@KMMHNOMI@Extension?5string?5retrieval?5is?5b@ 00198 b9 08 00 01 00 mov ecx, 65544 ; 00010008H 0019d e8 00 00 00 00 call _glfwInputError ; 736 : "Extension string retrieval is broken"); ; 737 : return GLFW_FALSE; 001a2 33 c0 xor eax, eax 001a4 eb 2f jmp SHORT $LN1@glfwExtens $LN12@glfwExtens: ; 738 : } ; 739 : ; 740 : if (_glfwStringInExtensionString(extension, extensions)) 001a6 48 8b 95 88 00 00 00 mov rdx, QWORD PTR extensions$7[rbp] 001ad 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR extension$[rbp] 001b4 e8 00 00 00 00 call _glfwStringInExtensionString 001b9 85 c0 test eax, eax 001bb 74 07 je SHORT $LN13@glfwExtens ; 741 : return GLFW_TRUE; 001bd b8 01 00 00 00 mov eax, 1 001c2 eb 11 jmp SHORT $LN1@glfwExtens $LN13@glfwExtens: $LN9@glfwExtens: ; 742 : } ; 743 : ; 744 : // Check if extension is in the platform-specific string ; 745 : return window->context.extensionSupported(extension); 001c4 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR extension$[rbp] 001cb 48 8b 45 08 mov rax, QWORD PTR window$[rbp] 001cf ff 90 68 02 00 00 call QWORD PTR [rax+616] $LN1@glfwExtens: ; 746 : } 001d5 48 8b f8 mov rdi, rax 001d8 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 001dc 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:glfwExtensionSupported$rtcFrameData 001e3 e8 00 00 00 00 call _RTC_CheckStackVars 001e8 48 8b c7 mov rax, rdi 001eb 48 8b 8d 58 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 001f2 48 33 cd xor rcx, rbp 001f5 e8 00 00 00 00 call __security_check_cookie 001fa 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] 00201 5f pop rdi 00202 5d pop rbp 00203 c3 ret 0 glfwExtensionSupported ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\context.c ; COMDAT glfwSwapInterval _TEXT SEGMENT window$ = 8 interval$ = 256 glfwSwapInterval PROC ; COMDAT ; 666 : { $LN5: 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 00004 55 push rbp 00005 57 push rdi 00006 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00012 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__3C97119B_context@c 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 667 : _GLFWwindow* window; ; 668 : ; 669 : _GLFW_REQUIRE_INIT(); 0001e 83 3d 00 00 00 00 00 cmp DWORD PTR _glfw, 0 00025 75 0e jne SHORT $LN2@glfwSwapIn 00027 33 d2 xor edx, edx 00029 b9 01 00 01 00 mov ecx, 65537 ; 00010001H 0002e e8 00 00 00 00 call _glfwInputError 00033 eb 3a jmp SHORT $LN1@glfwSwapIn $LN2@glfwSwapIn: ; 670 : ; 671 : window = _glfwPlatformGetTls(&_glfw.contextSlot); 00035 48 8d 0d a4 19 00 00 lea rcx, OFFSET FLAT:_glfw+6564 0003c e8 00 00 00 00 call _glfwPlatformGetTls 00041 48 89 45 08 mov QWORD PTR window$[rbp], rax ; 672 : if (!window) 00045 48 83 7d 08 00 cmp QWORD PTR window$[rbp], 0 0004a 75 13 jne SHORT $LN3@glfwSwapIn ; 673 : { ; 674 : _glfwInputError(GLFW_NO_CURRENT_CONTEXT, 0004c 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0EH@BEBOCAGI@Cannot?5set?5swap?5interval?5withou@ 00053 b9 02 00 01 00 mov ecx, 65538 ; 00010002H 00058 e8 00 00 00 00 call _glfwInputError ; 675 : "Cannot set swap interval without a current OpenGL or OpenGL ES context"); ; 676 : return; 0005d eb 10 jmp SHORT $LN1@glfwSwapIn $LN3@glfwSwapIn: ; 677 : } ; 678 : ; 679 : window->context.swapInterval(interval); 0005f 8b 8d 00 01 00 00 mov ecx, DWORD PTR interval$[rbp] 00065 48 8b 45 08 mov rax, QWORD PTR window$[rbp] 00069 ff 90 60 02 00 00 call QWORD PTR [rax+608] $LN1@glfwSwapIn: ; 680 : } 0006f 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00076 5f pop rdi 00077 5d pop rbp 00078 c3 ret 0 glfwSwapInterval ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\context.c ; COMDAT glfwSwapBuffers _TEXT SEGMENT window$ = 8 handle$ = 256 glfwSwapBuffers PROC ; COMDAT ; 649 : { $LN6: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__3C97119B_context@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 650 : _GLFWwindow* window = (_GLFWwindow*)handle; 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR handle$[rbp] 00026 48 89 45 08 mov QWORD PTR window$[rbp], rax ; 651 : assert(window != NULL); 0002a 48 83 7d 08 00 cmp QWORD PTR window$[rbp], 0 0002f 75 1c jne SHORT $LN5@glfwSwapBu 00031 41 b8 8b 02 00 00 mov r8d, 651 ; 0000028bH 00037 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1LM@EKCBKLBC@?$AAD?$AA?3?$AA?2?$AAN?$AAi?$AAt?$AAl?$AAo?$AAa?$AAd?$AAI?$AAn?$AAd?$AAu?$AAs@ 0003e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BO@GACOJICA@?$AAw?$AAi?$AAn?$AAd?$AAo?$AAw?$AA?5?$AA?$CB?$AA?$DN?$AA?5?$AAN?$AAU?$AAL?$AAL@ 00045 ff 15 00 00 00 00 call QWORD PTR __imp__wassert 0004b 33 c0 xor eax, eax $LN5@glfwSwapBu: ; 652 : ; 653 : _GLFW_REQUIRE_INIT(); 0004d 83 3d 00 00 00 00 00 cmp DWORD PTR _glfw, 0 00054 75 0e jne SHORT $LN2@glfwSwapBu 00056 33 d2 xor edx, edx 00058 b9 01 00 01 00 mov ecx, 65537 ; 00010001H 0005d e8 00 00 00 00 call _glfwInputError 00062 eb 2e jmp SHORT $LN1@glfwSwapBu $LN2@glfwSwapBu: ; 654 : ; 655 : if (window->context.client == GLFW_NO_API) 00064 48 8b 45 08 mov rax, QWORD PTR window$[rbp] 00068 83 b8 08 02 00 00 00 cmp DWORD PTR [rax+520], 0 0006f 75 13 jne SHORT $LN3@glfwSwapBu ; 656 : { ; 657 : _glfwInputError(GLFW_NO_WINDOW_CONTEXT, 00071 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0EI@PJFDHBJK@Cannot?5swap?5buffers?5of?5a?5window@ 00078 b9 0a 00 01 00 mov ecx, 65546 ; 0001000aH 0007d e8 00 00 00 00 call _glfwInputError ; 658 : "Cannot swap buffers of a window that has no OpenGL or OpenGL ES context"); ; 659 : return; 00082 eb 0e jmp SHORT $LN1@glfwSwapBu $LN3@glfwSwapBu: ; 660 : } ; 661 : ; 662 : window->context.swapBuffers(window); 00084 48 8b 4d 08 mov rcx, QWORD PTR window$[rbp] 00088 48 8b 45 08 mov rax, QWORD PTR window$[rbp] 0008c ff 90 58 02 00 00 call QWORD PTR [rax+600] $LN1@glfwSwapBu: ; 663 : } 00092 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00099 5f pop rdi 0009a 5d pop rbp 0009b c3 ret 0 glfwSwapBuffers ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\context.c ; COMDAT glfwGetCurrentContext _TEXT SEGMENT glfwGetCurrentContext PROC ; COMDAT ; 643 : { $LN4: 00000 40 55 push rbp 00002 57 push rdi 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0000f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__3C97119B_context@c 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 644 : _GLFW_REQUIRE_INIT_OR_RETURN(NULL); 0001b 83 3d 00 00 00 00 00 cmp DWORD PTR _glfw, 0 00022 75 10 jne SHORT $LN2@glfwGetCur 00024 33 d2 xor edx, edx 00026 b9 01 00 01 00 mov ecx, 65537 ; 00010001H 0002b e8 00 00 00 00 call _glfwInputError 00030 33 c0 xor eax, eax 00032 eb 0c jmp SHORT $LN1@glfwGetCur $LN2@glfwGetCur: ; 645 : return _glfwPlatformGetTls(&_glfw.contextSlot); 00034 48 8d 0d a4 19 00 00 lea rcx, OFFSET FLAT:_glfw+6564 0003b e8 00 00 00 00 call _glfwPlatformGetTls $LN1@glfwGetCur: ; 646 : } 00040 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00047 5f pop rdi 00048 5d pop rbp 00049 c3 ret 0 glfwGetCurrentContext ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\context.c ; COMDAT glfwMakeContextCurrent _TEXT SEGMENT window$ = 8 previous$ = 40 handle$ = 288 glfwMakeContextCurrent PROC ; COMDAT ; 617 : { $LN9: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__3C97119B_context@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 618 : _GLFWwindow* window = (_GLFWwindow*)handle; 0001f 48 8b 85 20 01 00 00 mov rax, QWORD PTR handle$[rbp] 00026 48 89 45 08 mov QWORD PTR window$[rbp], rax ; 619 : _GLFWwindow* previous; ; 620 : ; 621 : _GLFW_REQUIRE_INIT(); 0002a 83 3d 00 00 00 00 00 cmp DWORD PTR _glfw, 0 00031 75 0e jne SHORT $LN2@glfwMakeCo 00033 33 d2 xor edx, edx 00035 b9 01 00 01 00 mov ecx, 65537 ; 00010001H 0003a e8 00 00 00 00 call _glfwInputError 0003f eb 7c jmp SHORT $LN1@glfwMakeCo $LN2@glfwMakeCo: ; 622 : ; 623 : previous = _glfwPlatformGetTls(&_glfw.contextSlot); 00041 48 8d 0d a4 19 00 00 lea rcx, OFFSET FLAT:_glfw+6564 00048 e8 00 00 00 00 call _glfwPlatformGetTls 0004d 48 89 45 28 mov QWORD PTR previous$[rbp], rax ; 624 : ; 625 : if (window && window->context.client == GLFW_NO_API) 00051 48 83 7d 08 00 cmp QWORD PTR window$[rbp], 0 00056 74 20 je SHORT $LN3@glfwMakeCo 00058 48 8b 45 08 mov rax, QWORD PTR window$[rbp] 0005c 83 b8 08 02 00 00 00 cmp DWORD PTR [rax+520], 0 00063 75 13 jne SHORT $LN3@glfwMakeCo ; 626 : { ; 627 : _glfwInputError(GLFW_NO_WINDOW_CONTEXT, 00065 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0EK@HBJBDMAL@Cannot?5make?5current?5with?5a?5wind@ 0006c b9 0a 00 01 00 mov ecx, 65546 ; 0001000aH 00071 e8 00 00 00 00 call _glfwInputError ; 628 : "Cannot make current with a window that has no OpenGL or OpenGL ES context"); ; 629 : return; 00076 eb 45 jmp SHORT $LN1@glfwMakeCo $LN3@glfwMakeCo: ; 630 : } ; 631 : ; 632 : if (previous) 00078 48 83 7d 28 00 cmp QWORD PTR previous$[rbp], 0 0007d 74 29 je SHORT $LN4@glfwMakeCo ; 633 : { ; 634 : if (!window || window->context.source != previous->context.source) 0007f 48 83 7d 08 00 cmp QWORD PTR window$[rbp], 0 00084 74 16 je SHORT $LN6@glfwMakeCo 00086 48 8b 45 08 mov rax, QWORD PTR window$[rbp] 0008a 48 8b 4d 28 mov rcx, QWORD PTR previous$[rbp] 0008e 8b 89 0c 02 00 00 mov ecx, DWORD PTR [rcx+524] 00094 39 88 0c 02 00 00 cmp DWORD PTR [rax+524], ecx 0009a 74 0c je SHORT $LN5@glfwMakeCo $LN6@glfwMakeCo: ; 635 : previous->context.makeCurrent(NULL); 0009c 33 c9 xor ecx, ecx 0009e 48 8b 45 28 mov rax, QWORD PTR previous$[rbp] 000a2 ff 90 50 02 00 00 call QWORD PTR [rax+592] $LN5@glfwMakeCo: $LN4@glfwMakeCo: ; 636 : } ; 637 : ; 638 : if (window) 000a8 48 83 7d 08 00 cmp QWORD PTR window$[rbp], 0 000ad 74 0e je SHORT $LN7@glfwMakeCo ; 639 : window->context.makeCurrent(window); 000af 48 8b 4d 08 mov rcx, QWORD PTR window$[rbp] 000b3 48 8b 45 08 mov rax, QWORD PTR window$[rbp] 000b7 ff 90 50 02 00 00 call QWORD PTR [rax+592] $LN7@glfwMakeCo: $LN1@glfwMakeCo: ; 640 : } 000bd 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 000c4 5f pop rdi 000c5 5d pop rbp 000c6 c3 ret 0 glfwMakeContextCurrent ENDP _TEXT ENDS END