Files
stgsharp/实验/contexttest/StgSharpC/x64/Debug/context.cod
T

4157 lines
127 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
; 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