Files
stgsharp/源代码/StgSharpC/x64/Release/context.cod
T

3265 lines
100 KiB
Plaintext

; Listing generated by Microsoft (R) Optimizing Compiler Version 19.37.32824.0
include listing.inc
INCLUDELIB OLDNAMES
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@_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@_0BC@CLDFFND@GL_EXT_robustness@ ; `string'
PUBLIC ??_C@_0EK@HBJBDMAL@Cannot?5make?5current?5with?5a?5wind@ ; `string'
PUBLIC ??_C@_0EI@PJFDHBJK@Cannot?5swap?5buffers?5of?5a?5window@ ; `string'
PUBLIC ??_C@_0EH@BEBOCAGI@Cannot?5set?5swap?5interval?5withou@ ; `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@_0EH@LGPPFAO@Cannot?5query?5entry?5point?5withou@ ; `string'
; 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@_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@_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@_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@_0BC@CLDFFND@GL_EXT_robustness@
CONST SEGMENT
??_C@_0BC@CLDFFND@GL_EXT_robustness@ DB 'GL_EXT_robustness', 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@_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'
PUBLIC glfwGetProcAddress
PUBLIC glfwExtensionSupported
PUBLIC glfwSwapInterval
PUBLIC glfwSwapBuffers
PUBLIC glfwGetCurrentContext
PUBLIC glfwMakeContextCurrent
PUBLIC _glfwStringInExtensionString
PUBLIC _glfwRefreshContextAttribs
PUBLIC _glfwChooseFBConfig
PUBLIC _glfwIsValidContextConfig
PUBLIC sscanf
PUBLIC _vsscanf_l
; COMDAT pdata
pdata SEGMENT
$pdata$glfwGetProcAddress DD imagerel $LN10
DD imagerel $LN10+95
DD imagerel $unwind$glfwGetProcAddress
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$glfwExtensionSupported DD imagerel $LN39
DD imagerel $LN39+72
DD imagerel $unwind$glfwExtensionSupported
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$0$glfwExtensionSupported DD imagerel $LN39+72
DD imagerel $LN39+148
DD imagerel $chain$0$glfwExtensionSupported
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$1$glfwExtensionSupported DD imagerel $LN39+148
DD imagerel $LN39+253
DD imagerel $chain$1$glfwExtensionSupported
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$2$glfwExtensionSupported DD imagerel $LN39+253
DD imagerel $LN39+277
DD imagerel $chain$2$glfwExtensionSupported
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$4$glfwExtensionSupported DD imagerel $LN39+277
DD imagerel $LN39+336
DD imagerel $chain$4$glfwExtensionSupported
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$glfwSwapInterval DD imagerel $LN10
DD imagerel $LN10+87
DD imagerel $unwind$glfwSwapInterval
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$glfwGetCurrentContext DD imagerel $LN7
DD imagerel $LN7+49
DD imagerel $unwind$glfwGetCurrentContext
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$glfwMakeContextCurrent DD imagerel $LN18
DD imagerel $LN18+147
DD imagerel $unwind$glfwMakeContextCurrent
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwStringInExtensionString DD imagerel $LN26
DD imagerel $LN26+129
DD imagerel $unwind$_glfwStringInExtensionString
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwRefreshContextAttribs DD imagerel $LN227
DD imagerel $LN227+1531
DD imagerel $unwind$_glfwRefreshContextAttribs
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwChooseFBConfig DD imagerel $LN68
DD imagerel $LN68+34
DD imagerel $unwind$_glfwChooseFBConfig
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$3$_glfwChooseFBConfig DD imagerel $LN68+34
DD imagerel $LN68+472
DD imagerel $chain$3$_glfwChooseFBConfig
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$4$_glfwChooseFBConfig DD imagerel $LN68+472
DD imagerel $LN68+483
DD imagerel $chain$4$_glfwChooseFBConfig
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwIsValidContextConfig DD imagerel $LN34
DD imagerel $LN34+575
DD imagerel $unwind$_glfwIsValidContextConfig
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$sscanf DD imagerel $LN6
DD imagerel $LN6+82
DD imagerel $unwind$sscanf
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_vsscanf_l DD imagerel $LN4
DD imagerel $LN4+81
DD imagerel $unwind$_vsscanf_l
; COMDAT xdata
xdata SEGMENT
$unwind$_vsscanf_l DD 060f01H
DD 09640fH
DD 08340fH
DD 0700b520fH
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$sscanf DD 041601H
DD 070125216H
DD 030106011H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwIsValidContextConfig DD 010401H
DD 04204H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$4$_glfwChooseFBConfig DD 021H
DD imagerel $LN68
DD imagerel $LN68+34
DD imagerel $unwind$_glfwChooseFBConfig
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$3$_glfwChooseFBConfig DD 081b21H
DD 07741bH
DD 066416H
DD 05340dH
DD 08d405H
DD imagerel $LN68
DD imagerel $LN68+34
DD imagerel $unwind$_glfwChooseFBConfig
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwChooseFBConfig DD 040801H
DD 0e006f008H
DD 05002c004H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwRefreshContextAttribs DD 0aec19H
DD 015f4ecH
DD 01474ddH
DD 0e008b20cH
DD 06004d006H
DD 030025003H
DD imagerel __GSHandlerCheck
DD 058H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwStringInExtensionString DD 040a01H
DD 06340aH
DD 07006320aH
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$glfwMakeContextCurrent DD 020601H
DD 030023206H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$glfwGetCurrentContext DD 010401H
DD 04204H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$glfwSwapInterval DD 020601H
DD 030023206H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$4$glfwExtensionSupported DD 040021H
DD 0a7400H
DD 093400H
DD imagerel $LN39
DD imagerel $LN39+72
DD imagerel $unwind$glfwExtensionSupported
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$2$glfwExtensionSupported DD 021H
DD imagerel $LN39+72
DD imagerel $LN39+148
DD imagerel $chain$0$glfwExtensionSupported
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$1$glfwExtensionSupported DD 020521H
DD 093405H
DD imagerel $LN39+72
DD imagerel $LN39+148
DD imagerel $chain$0$glfwExtensionSupported
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$0$glfwExtensionSupported DD 020521H
DD 0a7405H
DD imagerel $LN39
DD imagerel $LN39+72
DD imagerel $unwind$glfwExtensionSupported
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$glfwExtensionSupported DD 021519H
DD 060025206H
DD imagerel __GSHandlerCheck
DD 028H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$glfwGetProcAddress DD 020601H
DD 030023206H
; Function compile flags: /Ogtpy
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\stdio.h
; COMDAT _vsscanf_l
_TEXT SEGMENT
_Buffer$ = 64
_Format$ = 72
_Locale$dead$ = 80
_ArgList$ = 88
_vsscanf_l PROC ; COMDAT
; 2152 : {
$LN4:
00000 48 89 5c 24 08 mov QWORD PTR [rsp+8], rbx
00005 48 89 74 24 10 mov QWORD PTR [rsp+16], rsi
0000a 57 push rdi
0000b 48 83 ec 30 sub rsp, 48 ; 00000030H
0000f 49 8b d9 mov rbx, r9
00012 48 8b fa mov rdi, rdx
00015 48 8b f1 mov rsi, rcx
; 2153 : return __stdio_common_vsscanf(
00018 e8 00 00 00 00 call __local_stdio_scanf_options
0001d 48 89 5c 24 28 mov QWORD PTR [rsp+40], rbx
00022 4c 8b cf mov r9, rdi
00025 49 c7 c0 ff ff
ff ff mov r8, -1
0002c 48 c7 44 24 20
00 00 00 00 mov QWORD PTR [rsp+32], 0
00035 48 8b d6 mov rdx, rsi
00038 48 8b 08 mov rcx, QWORD PTR [rax]
0003b 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 : }
00041 48 8b 5c 24 40 mov rbx, QWORD PTR [rsp+64]
00046 48 8b 74 24 48 mov rsi, QWORD PTR [rsp+72]
0004b 48 83 c4 30 add rsp, 48 ; 00000030H
0004f 5f pop rdi
00050 c3 ret 0
_vsscanf_l ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\stdio.h
; COMDAT sscanf
_TEXT SEGMENT
_Buffer$ = 80
_Format$ = 88
sscanf PROC ; COMDAT
; 2247 : {
$LN6:
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
0000a 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9
0000f 53 push rbx
00010 56 push rsi
00011 57 push rdi
00012 48 83 ec 30 sub rsp, 48 ; 00000030H
00016 48 8b da mov rbx, rdx
; 2248 : int _Result;
; 2249 : va_list _ArgList;
; 2250 : __crt_va_start(_ArgList, _Format);
00019 48 8d 74 24 60 lea rsi, QWORD PTR _Format$[rsp+8]
0001e 48 8b f9 mov rdi, rcx
; 2153 : return __stdio_common_vsscanf(
00021 e8 00 00 00 00 call __local_stdio_scanf_options
00026 48 89 74 24 28 mov QWORD PTR [rsp+40], rsi
0002b 4c 8b cb mov r9, rbx
0002e 49 c7 c0 ff ff
ff ff mov r8, -1
00035 48 c7 44 24 20
00 00 00 00 mov QWORD PTR [rsp+32], 0
0003e 48 8b d7 mov rdx, rdi
00041 48 8b 08 mov rcx, QWORD PTR [rax]
00044 ff 15 00 00 00
00 call QWORD PTR __imp___stdio_common_vsscanf
; 2251 : _Result = _vsscanf_l(_Buffer, _Format, NULL, _ArgList);
; 2252 : __crt_va_end(_ArgList);
; 2253 : return _Result;
; 2254 : }
0004a 48 83 c4 30 add rsp, 48 ; 00000030H
0004e 5f pop rdi
0004f 5e pop rsi
00050 5b pop rbx
00051 c3 ret 0
sscanf ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; COMDAT _glfwIsValidContextConfig
_TEXT SEGMENT
ctxconfig$ = 48
_glfwIsValidContextConfig PROC ; COMDAT
; 50 : {
$LN34:
00000 48 83 ec 28 sub rsp, 40 ; 00000028H
; 51 : if (ctxconfig->source != GLFW_NATIVE_CONTEXT_API &&
; 52 : ctxconfig->source != GLFW_EGL_CONTEXT_API &&
00004 44 8b 41 04 mov r8d, DWORD PTR [rcx+4]
00008 41 8d 80 ff 9f
fc ff lea eax, DWORD PTR [r8-221185]
0000f 83 f8 02 cmp eax, 2
00012 76 18 jbe SHORT $LN2@glfwIsVali
; 53 : ctxconfig->source != GLFW_OSMESA_CONTEXT_API)
; 54 : {
; 55 : _glfwInputError(GLFW_INVALID_ENUM,
00014 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CE@JBLPENML@Invalid?5context?5creation?5API?50x@
0001b b9 03 00 01 00 mov ecx, 65539 ; 00010003H
00020 e8 00 00 00 00 call _glfwInputError
; 56 : "Invalid context creation API 0x%08X",
; 57 : ctxconfig->source);
; 58 : return GLFW_FALSE;
00025 33 c0 xor eax, eax
; 181 : }
00027 48 83 c4 28 add rsp, 40 ; 00000028H
0002b c3 ret 0
$LN2@glfwIsVali:
; 59 : }
; 60 :
; 61 : if (ctxconfig->client != GLFW_NO_API &&
; 62 : ctxconfig->client != GLFW_OPENGL_API &&
0002c 8b 11 mov edx, DWORD PTR [rcx]
0002e 85 d2 test edx, edx
00030 74 26 je SHORT $LN3@glfwIsVali
00032 8d 82 ff ff fc
ff lea eax, DWORD PTR [rdx-196609]
00038 83 f8 01 cmp eax, 1
0003b 76 1b jbe SHORT $LN3@glfwIsVali
; 63 : ctxconfig->client != GLFW_OPENGL_ES_API)
; 64 : {
; 65 : _glfwInputError(GLFW_INVALID_ENUM,
0003d 44 8b c2 mov r8d, edx
00040 b9 03 00 01 00 mov ecx, 65539 ; 00010003H
00045 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0BK@EIOPBJJH@Invalid?5client?5API?50x?$CF08X@
0004c e8 00 00 00 00 call _glfwInputError
; 66 : "Invalid client API 0x%08X",
; 67 : ctxconfig->client);
; 68 : return GLFW_FALSE;
00051 33 c0 xor eax, eax
; 181 : }
00053 48 83 c4 28 add rsp, 40 ; 00000028H
00057 c3 ret 0
$LN3@glfwIsVali:
; 69 : }
; 70 :
; 71 : if (ctxconfig->share)
00058 48 8b 41 28 mov rax, QWORD PTR [rcx+40]
0005c 48 85 c0 test rax, rax
0005f 74 41 je SHORT $LN7@glfwIsVali
; 72 : {
; 73 : if (ctxconfig->client == GLFW_NO_API ||
00061 85 d2 test edx, edx
00063 74 2a je SHORT $LN6@glfwIsVali
00065 83 b8 08 02 00
00 00 cmp DWORD PTR [rax+520], 0
0006c 74 21 je SHORT $LN6@glfwIsVali
; 78 : }
; 79 :
; 80 : if (ctxconfig->source != ctxconfig->share->context.source)
0006e 44 3b 80 0c 02
00 00 cmp r8d, DWORD PTR [rax+524]
00075 74 2b je SHORT $LN7@glfwIsVali
; 81 : {
; 82 : _glfwInputError(GLFW_INVALID_ENUM,
00077 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0DE@OKHDGAJN@Context?5creation?5APIs?5do?5not?5ma@
0007e b9 03 00 01 00 mov ecx, 65539 ; 00010003H
00083 e8 00 00 00 00 call _glfwInputError
; 83 : "Context creation APIs do not match between contexts");
; 84 : return GLFW_FALSE;
00088 33 c0 xor eax, eax
; 181 : }
0008a 48 83 c4 28 add rsp, 40 ; 00000028H
0008e c3 ret 0
$LN6@glfwIsVali:
; 74 : ctxconfig->share->context.client == GLFW_NO_API)
; 75 : {
; 76 : _glfwInputError(GLFW_NO_WINDOW_CONTEXT, NULL);
0008f 33 d2 xor edx, edx
00091 b9 0a 00 01 00 mov ecx, 65546 ; 0001000aH
00096 e8 00 00 00 00 call _glfwInputError
; 77 : return GLFW_FALSE;
0009b 33 c0 xor eax, eax
; 181 : }
0009d 48 83 c4 28 add rsp, 40 ; 00000028H
000a1 c3 ret 0
$LN7@glfwIsVali:
; 85 : }
; 86 : }
; 87 :
; 88 : if (ctxconfig->client == GLFW_OPENGL_API)
000a2 81 fa 01 00 03
00 cmp edx, 196609 ; 00030001H
000a8 0f 85 e3 00 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) ||
000ae 44 8b 41 08 mov r8d, DWORD PTR [rcx+8]
000b2 41 83 f8 01 cmp r8d, 1
000b6 0f 8c b9 00 00
00 jl $LN11@glfwIsVali
000bc 8b 51 0c mov edx, DWORD PTR [rcx+12]
000bf 85 d2 test edx, edx
000c1 0f 88 ae 00 00
00 js $LN11@glfwIsVali
000c7 41 83 f8 01 cmp r8d, 1
000cb 75 09 jne SHORT $LN12@glfwIsVali
000cd 83 fa 05 cmp edx, 5
000d0 0f 8f 9f 00 00
00 jg $LN11@glfwIsVali
$LN12@glfwIsVali:
000d6 41 83 f8 02 cmp r8d, 2
000da 75 09 jne SHORT $LN13@glfwIsVali
000dc 83 fa 01 cmp edx, 1
000df 0f 8f 90 00 00
00 jg $LN11@glfwIsVali
$LN13@glfwIsVali:
000e5 41 83 f8 03 cmp r8d, 3
000e9 75 09 jne SHORT $LN10@glfwIsVali
000eb 41 3b d0 cmp edx, r8d
000ee 0f 8f 81 00 00
00 jg $LN11@glfwIsVali
$LN10@glfwIsVali:
; 105 : }
; 106 :
; 107 : if (ctxconfig->profile)
000f4 44 8b 49 1c mov r9d, DWORD PTR [rcx+28]
000f8 45 85 c9 test r9d, r9d
000fb 74 50 je SHORT $LN16@glfwIsVali
; 108 : {
; 109 : if (ctxconfig->profile != GLFW_OPENGL_CORE_PROFILE &&
000fd 41 8d 81 ff df
fc ff lea eax, DWORD PTR [r9-204801]
00104 83 f8 01 cmp eax, 1
00107 76 1b jbe SHORT $LN15@glfwIsVali
; 110 : ctxconfig->profile != GLFW_OPENGL_COMPAT_PROFILE)
; 111 : {
; 112 : _glfwInputError(GLFW_INVALID_ENUM,
00109 45 8b c1 mov r8d, r9d
0010c 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0BO@PCKHNBJ@Invalid?5OpenGL?5profile?50x?$CF08X@
00113 b9 03 00 01 00 mov ecx, 65539 ; 00010003H
00118 e8 00 00 00 00 call _glfwInputError
; 113 : "Invalid OpenGL profile 0x%08X",
; 114 : ctxconfig->profile);
; 115 : return GLFW_FALSE;
0011d 33 c0 xor eax, eax
; 181 : }
0011f 48 83 c4 28 add rsp, 40 ; 00000028H
00123 c3 ret 0
$LN15@glfwIsVali:
; 116 : }
; 117 :
; 118 : if (ctxconfig->major <= 2 ||
00124 41 83 f8 02 cmp r8d, 2
00128 7e 0b jle SHORT $LN17@glfwIsVali
0012a 41 83 f8 03 cmp r8d, 3
0012e 75 1d jne SHORT $LN16@glfwIsVali
00130 83 fa 02 cmp edx, 2
00133 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,
00135 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0ED@FEABOOIM@Context?5profiles?5are?5only?5defin@
0013c b9 04 00 01 00 mov ecx, 65540 ; 00010004H
00141 e8 00 00 00 00 call _glfwInputError
; 125 : "Context profiles are only defined for OpenGL version 3.2 and above");
; 126 : return GLFW_FALSE;
00146 33 c0 xor eax, eax
; 181 : }
00148 48 83 c4 28 add rsp, 40 ; 00000028H
0014c c3 ret 0
$LN16@glfwIsVali:
; 127 : }
; 128 : }
; 129 :
; 130 : if (ctxconfig->forward && ctxconfig->major <= 2)
0014d 83 79 10 00 cmp DWORD PTR [rcx+16], 0
00151 0f 84 84 00 00
00 je $LN20@glfwIsVali
00157 41 83 f8 02 cmp r8d, 2
0015b 7f 7e jg SHORT $LN20@glfwIsVali
; 131 : {
; 132 : // Forward-compatible contexts are only defined for OpenGL version 3.0 and above
; 133 : _glfwInputError(GLFW_INVALID_VALUE,
0015d 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0EH@CMDCLIEA@Forward?9compatibility?5is?5only?5d@
00164 b9 04 00 01 00 mov ecx, 65540 ; 00010004H
00169 e8 00 00 00 00 call _glfwInputError
; 134 : "Forward-compatibility is only defined for OpenGL version 3.0 and above");
; 135 : return GLFW_FALSE;
0016e 33 c0 xor eax, eax
; 181 : }
00170 48 83 c4 28 add rsp, 40 ; 00000028H
00174 c3 ret 0
$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,
00175 44 8b 49 0c mov r9d, DWORD PTR [rcx+12]
00179 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0BN@DHKEBMCG@Invalid?5OpenGL?5version?5?$CFi?4?$CFi@
00180 b9 04 00 01 00 mov ecx, 65540 ; 00010004H
00185 e8 00 00 00 00 call _glfwInputError
; 102 : "Invalid OpenGL version %i.%i",
; 103 : ctxconfig->major, ctxconfig->minor);
; 104 : return GLFW_FALSE;
0018a 33 c0 xor eax, eax
; 181 : }
0018c 48 83 c4 28 add rsp, 40 ; 00000028H
00190 c3 ret 0
$LN8@glfwIsVali:
; 136 : }
; 137 : }
; 138 : else if (ctxconfig->client == GLFW_OPENGL_ES_API)
00191 81 fa 02 00 03
00 cmp edx, 196610 ; 00030002H
00197 75 42 jne SHORT $LN20@glfwIsVali
; 139 : {
; 140 : if (ctxconfig->major < 1 || ctxconfig->minor < 0 ||
; 141 : (ctxconfig->major == 1 && ctxconfig->minor > 1) ||
00199 44 8b 41 08 mov r8d, DWORD PTR [rcx+8]
0019d 41 83 f8 01 cmp r8d, 1
001a1 7c 1c jl SHORT $LN21@glfwIsVali
001a3 8b 41 0c mov eax, DWORD PTR [rcx+12]
001a6 85 c0 test eax, eax
001a8 78 15 js SHORT $LN21@glfwIsVali
001aa 41 83 f8 01 cmp r8d, 1
001ae 75 05 jne SHORT $LN22@glfwIsVali
001b0 41 3b c0 cmp eax, r8d
001b3 7f 0a jg SHORT $LN21@glfwIsVali
$LN22@glfwIsVali:
001b5 41 83 f8 02 cmp r8d, 2
001b9 75 20 jne SHORT $LN20@glfwIsVali
001bb 85 c0 test eax, eax
001bd 7e 1c 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,
001bf 44 8b 49 0c mov r9d, DWORD PTR [rcx+12]
001c3 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CA@LFIDGAHJ@Invalid?5OpenGL?5ES?5version?5?$CFi?4?$CFi@
001ca b9 04 00 01 00 mov ecx, 65540 ; 00010004H
001cf e8 00 00 00 00 call _glfwInputError
; 150 : "Invalid OpenGL ES version %i.%i",
; 151 : ctxconfig->major, ctxconfig->minor);
; 152 : return GLFW_FALSE;
001d4 33 c0 xor eax, eax
; 181 : }
001d6 48 83 c4 28 add rsp, 40 ; 00000028H
001da c3 ret 0
$LN20@glfwIsVali:
; 153 : }
; 154 : }
; 155 :
; 156 : if (ctxconfig->robustness)
001db 44 8b 41 20 mov r8d, DWORD PTR [rcx+32]
001df 45 85 c0 test r8d, r8d
001e2 74 24 je SHORT $LN24@glfwIsVali
001e4 41 8d 80 ff ef
fc ff lea eax, DWORD PTR [r8-200705]
001eb 83 f8 01 cmp eax, 1
001ee 76 18 jbe SHORT $LN24@glfwIsVali
; 157 : {
; 158 : if (ctxconfig->robustness != GLFW_NO_RESET_NOTIFICATION &&
; 159 : ctxconfig->robustness != GLFW_LOSE_CONTEXT_ON_RESET)
; 160 : {
; 161 : _glfwInputError(GLFW_INVALID_ENUM,
001f0 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CH@PNNMGINB@Invalid?5context?5robustness?5mode@
001f7 b9 03 00 01 00 mov ecx, 65539 ; 00010003H
001fc e8 00 00 00 00 call _glfwInputError
; 162 : "Invalid context robustness mode 0x%08X",
; 163 : ctxconfig->robustness);
; 164 : return GLFW_FALSE;
00201 33 c0 xor eax, eax
; 181 : }
00203 48 83 c4 28 add rsp, 40 ; 00000028H
00207 c3 ret 0
$LN24@glfwIsVali:
; 165 : }
; 166 : }
; 167 :
; 168 : if (ctxconfig->release)
00208 44 8b 41 24 mov r8d, DWORD PTR [rcx+36]
0020c 45 85 c0 test r8d, r8d
0020f 74 24 je SHORT $LN26@glfwIsVali
00211 41 8d 80 ff af
fc ff lea eax, DWORD PTR [r8-217089]
00218 83 f8 01 cmp eax, 1
0021b 76 18 jbe SHORT $LN26@glfwIsVali
; 169 : {
; 170 : if (ctxconfig->release != GLFW_RELEASE_BEHAVIOR_NONE &&
; 171 : ctxconfig->release != GLFW_RELEASE_BEHAVIOR_FLUSH)
; 172 : {
; 173 : _glfwInputError(GLFW_INVALID_ENUM,
0021d 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CI@JDDJIGNN@Invalid?5context?5release?5behavio@
00224 b9 03 00 01 00 mov ecx, 65539 ; 00010003H
00229 e8 00 00 00 00 call _glfwInputError
; 174 : "Invalid context release behavior 0x%08X",
; 175 : ctxconfig->release);
; 176 : return GLFW_FALSE;
0022e 33 c0 xor eax, eax
; 181 : }
00230 48 83 c4 28 add rsp, 40 ; 00000028H
00234 c3 ret 0
$LN26@glfwIsVali:
; 177 : }
; 178 : }
; 179 :
; 180 : return GLFW_TRUE;
00235 b8 01 00 00 00 mov eax, 1
; 181 : }
0023a 48 83 c4 28 add rsp, 40 ; 00000028H
0023e c3 ret 0
_glfwIsValidContextConfig ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; COMDAT _glfwChooseFBConfig
_TEXT SEGMENT
desired$ = 40
alternatives$ = 48
count$ = 56
_glfwChooseFBConfig PROC ; COMDAT
; 188 : {
$LN68:
00000 40 55 push rbp
00002 41 54 push r12
00004 41 56 push r14
00006 41 57 push r15
; 189 : unsigned int i;
; 190 : unsigned int missing, leastMissing = UINT_MAX;
00008 41 be ff ff ff
ff mov r14d, -1 ; ffffffffH
; 191 : unsigned int colorDiff, leastColorDiff = UINT_MAX;
; 192 : unsigned int extraDiff, leastExtraDiff = UINT_MAX;
; 193 : const _GLFWfbconfig* current;
; 194 : const _GLFWfbconfig* closest = NULL;
0000e 33 ed xor ebp, ebp
00010 4c 8b c9 mov r9, rcx
00013 45 8b fe mov r15d, r14d
00016 45 8b e6 mov r12d, r14d
; 195 :
; 196 : for (i = 0; i < count; i++)
00019 45 85 c0 test r8d, r8d
0001c 0f 84 b6 01 00
00 je $LN36@glfwChoose
00022 4c 89 6c 24 40 mov QWORD PTR [rsp+64], r13
; 197 : {
; 198 : current = alternatives + i;
; 199 :
; 200 : if (desired->stereo > 0 && current->stereo == 0)
00027 8d 45 01 lea eax, QWORD PTR [rbp+1]
0002a 48 89 5c 24 28 mov QWORD PTR [rsp+40], rbx
0002f 48 83 c2 28 add rdx, 40 ; 00000028H
00033 48 89 74 24 30 mov QWORD PTR [rsp+48], rsi
00038 48 89 7c 24 38 mov QWORD PTR [rsp+56], rdi
0003d 45 8b e8 mov r13d, r8d
$LL4@glfwChoose:
00040 41 83 79 2c 00 cmp DWORD PTR [r9+44], 0
00045 7e 0a jle SHORT $LN5@glfwChoose
00047 83 7a 04 00 cmp DWORD PTR [rdx+4], 0
0004b 0f 84 65 01 00
00 je $LN2@glfwChoose
$LN5@glfwChoose:
; 201 : {
; 202 : // Stereo is a hard constraint
; 203 : continue;
; 204 : }
; 205 :
; 206 : // Count number of missing buffers
; 207 : {
; 208 : missing = 0;
; 209 :
; 210 : if (desired->alphaBits > 0 && current->alphaBits == 0)
00051 41 8b 79 0c mov edi, DWORD PTR [r9+12]
00055 33 c9 xor ecx, ecx
00057 85 ff test edi, edi
00059 7e 06 jle SHORT $LN6@glfwChoose
0005b 39 4a e4 cmp DWORD PTR [rdx-28], ecx
0005e 0f 44 c8 cmove ecx, eax
$LN6@glfwChoose:
; 211 : missing++;
; 212 :
; 213 : if (desired->depthBits > 0 && current->depthBits == 0)
00061 45 8b 59 10 mov r11d, DWORD PTR [r9+16]
00065 45 85 db test r11d, r11d
00068 7e 08 jle SHORT $LN7@glfwChoose
0006a 83 7a e8 00 cmp DWORD PTR [rdx-24], 0
0006e 75 02 jne SHORT $LN7@glfwChoose
; 214 : missing++;
00070 ff c1 inc ecx
$LN7@glfwChoose:
; 215 :
; 216 : if (desired->stencilBits > 0 && current->stencilBits == 0)
00072 45 8b 51 14 mov r10d, DWORD PTR [r9+20]
00076 45 85 d2 test r10d, r10d
00079 7e 08 jle SHORT $LN8@glfwChoose
0007b 83 7a ec 00 cmp DWORD PTR [rdx-20], 0
0007f 75 02 jne SHORT $LN8@glfwChoose
; 217 : missing++;
00081 ff c1 inc ecx
$LN8@glfwChoose:
; 218 :
; 219 : if (desired->auxBuffers > 0 &&
00083 41 8b 41 28 mov eax, DWORD PTR [r9+40]
00087 85 c0 test eax, eax
00089 7e 0d jle SHORT $LN9@glfwChoose
0008b 44 8b 02 mov r8d, DWORD PTR [rdx]
0008e 44 3b c0 cmp r8d, eax
00091 7d 05 jge SHORT $LN9@glfwChoose
; 220 : current->auxBuffers < desired->auxBuffers)
; 221 : {
; 222 : missing += desired->auxBuffers - current->auxBuffers;
00093 41 2b c0 sub eax, r8d
00096 03 c8 add ecx, eax
$LN9@glfwChoose:
; 223 : }
; 224 :
; 225 : if (desired->samples > 0 && current->samples == 0)
00098 41 8b 59 30 mov ebx, DWORD PTR [r9+48]
0009c 85 db test ebx, ebx
0009e 7e 08 jle SHORT $LN10@glfwChoose
000a0 83 7a 08 00 cmp DWORD PTR [rdx+8], 0
000a4 75 02 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++;
000a6 ff c1 inc ecx
$LN10@glfwChoose:
; 231 : }
; 232 :
; 233 : if (desired->transparent != current->transparent)
; 234 : missing++;
; 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;
000a8 41 8b 41 3c mov eax, DWORD PTR [r9+60]
000ac 8d 71 01 lea esi, DWORD PTR [rcx+1]
000af 3b 42 14 cmp eax, DWORD PTR [rdx+20]
; 243 :
; 244 : if (desired->redBits != GLFW_DONT_CARE)
000b2 41 8b 01 mov eax, DWORD PTR [r9]
000b5 0f 44 f1 cmove esi, ecx
000b8 45 33 c0 xor r8d, r8d
000bb 83 f8 ff cmp eax, -1
000be 74 0b je SHORT $LN12@glfwChoose
; 245 : {
; 246 : colorDiff += (desired->redBits - current->redBits) *
000c0 44 8b c0 mov r8d, eax
000c3 44 2b 42 d8 sub r8d, DWORD PTR [rdx-40]
000c7 45 0f af c0 imul r8d, r8d
$LN12@glfwChoose:
; 247 : (desired->redBits - current->redBits);
; 248 : }
; 249 :
; 250 : if (desired->greenBits != GLFW_DONT_CARE)
000cb 41 8b 41 04 mov eax, DWORD PTR [r9+4]
000cf 83 f8 ff cmp eax, -1
000d2 74 09 je SHORT $LN13@glfwChoose
; 251 : {
; 252 : colorDiff += (desired->greenBits - current->greenBits) *
000d4 2b 42 dc sub eax, DWORD PTR [rdx-36]
000d7 0f af c0 imul eax, eax
000da 44 03 c0 add r8d, eax
$LN13@glfwChoose:
; 253 : (desired->greenBits - current->greenBits);
; 254 : }
; 255 :
; 256 : if (desired->blueBits != GLFW_DONT_CARE)
000dd 41 8b 41 08 mov eax, DWORD PTR [r9+8]
000e1 83 f8 ff cmp eax, -1
000e4 74 09 je SHORT $LN14@glfwChoose
; 257 : {
; 258 : colorDiff += (desired->blueBits - current->blueBits) *
000e6 2b 42 e0 sub eax, DWORD PTR [rdx-32]
000e9 0f af c0 imul eax, eax
000ec 44 03 c0 add r8d, eax
$LN14@glfwChoose:
; 259 : (desired->blueBits - current->blueBits);
; 260 : }
; 261 : }
; 262 :
; 263 : // Calculate non-color channel size difference value
; 264 : {
; 265 : extraDiff = 0;
000ef 33 c0 xor eax, eax
; 266 :
; 267 : if (desired->alphaBits != GLFW_DONT_CARE)
000f1 83 ff ff cmp edi, -1
000f4 74 08 je SHORT $LN15@glfwChoose
; 268 : {
; 269 : extraDiff += (desired->alphaBits - current->alphaBits) *
000f6 8b c7 mov eax, edi
000f8 2b 42 e4 sub eax, DWORD PTR [rdx-28]
000fb 0f af c0 imul eax, eax
$LN15@glfwChoose:
; 270 : (desired->alphaBits - current->alphaBits);
; 271 : }
; 272 :
; 273 : if (desired->depthBits != GLFW_DONT_CARE)
000fe 41 83 fb ff cmp r11d, -1
00102 74 0b je SHORT $LN16@glfwChoose
; 274 : {
; 275 : extraDiff += (desired->depthBits - current->depthBits) *
00104 44 2b 5a e8 sub r11d, DWORD PTR [rdx-24]
00108 45 0f af db imul r11d, r11d
0010c 41 03 c3 add eax, r11d
$LN16@glfwChoose:
; 276 : (desired->depthBits - current->depthBits);
; 277 : }
; 278 :
; 279 : if (desired->stencilBits != GLFW_DONT_CARE)
0010f 41 83 fa ff cmp r10d, -1
00113 74 0b je SHORT $LN17@glfwChoose
; 280 : {
; 281 : extraDiff += (desired->stencilBits - current->stencilBits) *
00115 44 2b 52 ec sub r10d, DWORD PTR [rdx-20]
00119 45 0f af d2 imul r10d, r10d
0011d 41 03 c2 add eax, r10d
$LN17@glfwChoose:
; 282 : (desired->stencilBits - current->stencilBits);
; 283 : }
; 284 :
; 285 : if (desired->accumRedBits != GLFW_DONT_CARE)
00120 41 8b 49 18 mov ecx, DWORD PTR [r9+24]
00124 83 f9 ff cmp ecx, -1
00127 74 08 je SHORT $LN18@glfwChoose
; 286 : {
; 287 : extraDiff += (desired->accumRedBits - current->accumRedBits) *
00129 2b 4a f0 sub ecx, DWORD PTR [rdx-16]
0012c 0f af c9 imul ecx, ecx
0012f 03 c1 add eax, ecx
$LN18@glfwChoose:
; 288 : (desired->accumRedBits - current->accumRedBits);
; 289 : }
; 290 :
; 291 : if (desired->accumGreenBits != GLFW_DONT_CARE)
00131 41 8b 49 1c mov ecx, DWORD PTR [r9+28]
00135 83 f9 ff cmp ecx, -1
00138 74 08 je SHORT $LN19@glfwChoose
; 292 : {
; 293 : extraDiff += (desired->accumGreenBits - current->accumGreenBits) *
0013a 2b 4a f4 sub ecx, DWORD PTR [rdx-12]
0013d 0f af c9 imul ecx, ecx
00140 03 c1 add eax, ecx
$LN19@glfwChoose:
; 294 : (desired->accumGreenBits - current->accumGreenBits);
; 295 : }
; 296 :
; 297 : if (desired->accumBlueBits != GLFW_DONT_CARE)
00142 41 8b 49 20 mov ecx, DWORD PTR [r9+32]
00146 83 f9 ff cmp ecx, -1
00149 74 08 je SHORT $LN20@glfwChoose
; 298 : {
; 299 : extraDiff += (desired->accumBlueBits - current->accumBlueBits) *
0014b 2b 4a f8 sub ecx, DWORD PTR [rdx-8]
0014e 0f af c9 imul ecx, ecx
00151 03 c1 add eax, ecx
$LN20@glfwChoose:
; 300 : (desired->accumBlueBits - current->accumBlueBits);
; 301 : }
; 302 :
; 303 : if (desired->accumAlphaBits != GLFW_DONT_CARE)
00153 41 8b 49 24 mov ecx, DWORD PTR [r9+36]
00157 83 f9 ff cmp ecx, -1
0015a 74 08 je SHORT $LN21@glfwChoose
; 304 : {
; 305 : extraDiff += (desired->accumAlphaBits - current->accumAlphaBits) *
0015c 2b 4a fc sub ecx, DWORD PTR [rdx-4]
0015f 0f af c9 imul ecx, ecx
00162 03 c1 add eax, ecx
$LN21@glfwChoose:
; 306 : (desired->accumAlphaBits - current->accumAlphaBits);
; 307 : }
; 308 :
; 309 : if (desired->samples != GLFW_DONT_CARE)
00164 83 fb ff cmp ebx, -1
00167 74 08 je SHORT $LN22@glfwChoose
; 310 : {
; 311 : extraDiff += (desired->samples - current->samples) *
00169 2b 5a 08 sub ebx, DWORD PTR [rdx+8]
0016c 0f af db imul ebx, ebx
0016f 03 c3 add eax, ebx
$LN22@glfwChoose:
; 312 : (desired->samples - current->samples);
; 313 : }
; 314 :
; 315 : if (desired->sRGB && !current->sRGB)
00171 41 83 79 34 00 cmp DWORD PTR [r9+52], 0
00176 74 08 je SHORT $LN23@glfwChoose
00178 83 7a 0c 00 cmp DWORD PTR [rdx+12], 0
0017c 75 02 jne SHORT $LN23@glfwChoose
; 316 : extraDiff++;
0017e ff c0 inc 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)
00180 41 3b f6 cmp esi, r14d
00183 73 06 jae SHORT $LN24@glfwChoose
; 324 : closest = current;
00185 48 8d 6a d8 lea rbp, QWORD PTR [rdx-40]
00189 eb 1d jmp SHORT $LN35@glfwChoose
$LN24@glfwChoose:
; 325 : else if (missing == leastMissing)
0018b 75 12 jne SHORT $LN27@glfwChoose
; 326 : {
; 327 : if ((colorDiff < leastColorDiff) ||
0018d 45 3b c7 cmp r8d, r15d
00190 72 07 jb SHORT $LN28@glfwChoose
00192 75 0b jne SHORT $LN27@glfwChoose
00194 41 3b c4 cmp eax, r12d
00197 73 06 jae SHORT $LN27@glfwChoose
$LN28@glfwChoose:
; 328 : (colorDiff == leastColorDiff && extraDiff < leastExtraDiff))
; 329 : {
; 330 : closest = current;
00199 48 8d 6a d8 lea rbp, QWORD PTR [rdx-40]
; 331 : }
; 332 : }
; 333 :
; 334 : if (current == closest)
0019d eb 09 jmp SHORT $LN35@glfwChoose
$LN27@glfwChoose:
0019f 48 8d 4a d8 lea rcx, QWORD PTR [rdx-40]
001a3 48 3b cd cmp rcx, rbp
001a6 75 09 jne SHORT $LN37@glfwChoose
$LN35@glfwChoose:
; 335 : {
; 336 : leastMissing = missing;
001a8 44 8b f6 mov r14d, esi
; 337 : leastColorDiff = colorDiff;
001ab 45 8b f8 mov r15d, r8d
; 338 : leastExtraDiff = extraDiff;
001ae 44 8b e0 mov r12d, eax
$LN37@glfwChoose:
; 195 :
; 196 : for (i = 0; i < count; i++)
001b1 b8 01 00 00 00 mov eax, 1
$LN2@glfwChoose:
001b6 48 83 c2 48 add rdx, 72 ; 00000048H
001ba 49 83 ed 01 sub r13, 1
001be 0f 85 7c fe ff
ff jne $LL4@glfwChoose
001c4 4c 8b 6c 24 40 mov r13, QWORD PTR [rsp+64]
001c9 48 8b 7c 24 38 mov rdi, QWORD PTR [rsp+56]
001ce 48 8b 74 24 30 mov rsi, QWORD PTR [rsp+48]
001d3 48 8b 5c 24 28 mov rbx, QWORD PTR [rsp+40]
$LN36@glfwChoose:
; 339 : }
; 340 : }
; 341 :
; 342 : return closest;
; 343 : }
001d8 48 8b c5 mov rax, rbp
001db 41 5f pop r15
001dd 41 5e pop r14
001df 41 5c pop r12
001e1 5d pop rbp
001e2 c3 ret 0
_glfwChooseFBConfig ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; COMDAT _glfwRefreshContextAttribs
_TEXT SEGMENT
prefixes$ = 48
behavior$1 = 80
strategy$2 = 80
mask$3 = 80
flags$4 = 80
__$ArrayPad$ = 88
window$ = 144
ctxconfig$ = 152
_glfwRefreshContextAttribs PROC ; COMDAT
; 349 : {
$LN227:
00000 40 53 push rbx
00002 55 push rbp
00003 56 push rsi
00004 41 55 push r13
00006 41 56 push r14
00008 48 83 ec 60 sub rsp, 96 ; 00000060H
0000c 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
00013 48 33 c4 xor rax, rsp
00016 48 89 44 24 58 mov QWORD PTR __$ArrayPad$[rsp], rax
; 353 : const char* prefixes[] =
0001b 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:??_C@_0O@EMKFPNOG@OpenGL?5ES?9CL?5@
00022 48 8b f1 mov rsi, rcx
00025 48 89 44 24 38 mov QWORD PTR prefixes$[rsp+8], rax
0002a 48 8d 2d 00 00
00 00 lea rbp, OFFSET FLAT:??_C@_0O@ENGHJHNB@OpenGL?5ES?9CM?5@
00031 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:??_C@_0L@JLFHOCGA@OpenGL?5ES?5@
00038 48 89 6c 24 30 mov QWORD PTR prefixes$[rsp], rbp
0003d 48 89 44 24 40 mov QWORD PTR prefixes$[rsp+16], rax
00042 45 33 f6 xor r14d, r14d
; 354 : {
; 355 : "OpenGL ES-CM ",
; 356 : "OpenGL ES-CL ",
; 357 : "OpenGL ES ",
; 358 : NULL
; 359 : };
; 360 :
; 361 : window->context.source = ctxconfig->source;
00045 8b 42 04 mov eax, DWORD PTR [rdx+4]
00048 4c 8b ea mov r13, rdx
0004b 89 81 0c 02 00
00 mov DWORD PTR [rcx+524], eax
; 362 : window->context.client = GLFW_OPENGL_API;
00051 c7 81 08 02 00
00 01 00 03 00 mov DWORD PTR [rcx+520], 196609 ; 00030001H
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; 66 : return TlsGetValue(tls->win32.index);
0005b 8b 0d a8 19 00
00 mov ecx, DWORD PTR _glfw+6568
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; 353 : const char* prefixes[] =
00061 4c 89 74 24 48 mov QWORD PTR prefixes$[rsp+24], r14
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; 66 : return TlsGetValue(tls->win32.index);
00066 ff 15 00 00 00
00 call QWORD PTR __imp_TlsGetValue
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; 621 : _GLFW_REQUIRE_INIT();
0006c 44 39 35 00 00
00 00 cmp DWORD PTR _glfw, r14d
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; 66 : return TlsGetValue(tls->win32.index);
00073 48 8b d8 mov rbx, rax
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; 621 : _GLFW_REQUIRE_INIT();
00076 75 0e jne SHORT $LN52@glfwRefres
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 eb 4f jmp SHORT $LN57@glfwRefres
$LN52@glfwRefres:
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; 66 : return TlsGetValue(tls->win32.index);
00086 8b 0d a8 19 00
00 mov ecx, DWORD PTR _glfw+6568
0008c ff 15 00 00 00
00 call QWORD PTR __imp_TlsGetValue
00092 48 8b d0 mov rdx, rax
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; 625 : if (window && window->context.client == GLFW_NO_API)
00095 44 39 b6 08 02
00 00 cmp DWORD PTR [rsi+520], r14d
0009c 75 13 jne SHORT $LN125@glfwRefres
; 626 : {
; 627 : _glfwInputError(GLFW_NO_WINDOW_CONTEXT,
0009e 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0EK@HBJBDMAL@Cannot?5make?5current?5with?5a?5wind@
000a5 b9 0a 00 01 00 mov ecx, 65546 ; 0001000aH
000aa e8 00 00 00 00 call _glfwInputError
; 628 : "Cannot make current with a window that has no OpenGL or OpenGL ES context");
; 629 : return;
000af eb 24 jmp SHORT $LN57@glfwRefres
$LN125@glfwRefres:
; 630 : }
; 631 :
; 632 : if (previous)
000b1 48 85 d2 test rdx, rdx
000b4 74 16 je SHORT $LN55@glfwRefres
; 633 : {
; 634 : if (!window || window->context.source != previous->context.source)
000b6 8b 80 0c 02 00
00 mov eax, DWORD PTR [rax+524]
000bc 39 86 0c 02 00
00 cmp DWORD PTR [rsi+524], eax
000c2 74 08 je SHORT $LN55@glfwRefres
; 635 : previous->context.makeCurrent(NULL);
000c4 33 c9 xor ecx, ecx
000c6 ff 92 50 02 00
00 call QWORD PTR [rdx+592]
$LN55@glfwRefres:
; 639 : window->context.makeCurrent(window);
000cc 48 8b ce mov rcx, rsi
000cf ff 96 50 02 00
00 call QWORD PTR [rsi+592]
$LN57@glfwRefres:
000d5 48 89 bc 24 a0
00 00 00 mov QWORD PTR [rsp+160], rdi
; 363 :
; 364 : previous = _glfwPlatformGetTls(&_glfw.contextSlot);
; 365 : glfwMakeContextCurrent((GLFWwindow*)window);
; 366 :
; 367 : window->context.GetIntegerv = (PFNGLGETINTEGERVPROC)
000dd 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:??_C@_0O@DHHDCCLF@glGetIntegerv@
000e4 4c 89 bc 24 a8
00 00 00 mov QWORD PTR [rsp+168], r15
000ec ff 96 70 02 00
00 call QWORD PTR [rsi+624]
; 368 : window->context.getProcAddress("glGetIntegerv");
; 369 : window->context.GetString = (PFNGLGETSTRINGPROC)
000f2 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:??_C@_0M@OPOBFDCB@glGetString@
000f9 48 89 86 40 02
00 00 mov QWORD PTR [rsi+576], rax
00100 ff 96 70 02 00
00 call QWORD PTR [rsi+624]
00106 48 89 86 48 02
00 00 mov QWORD PTR [rsi+584], rax
; 370 : window->context.getProcAddress("glGetString");
; 371 : if (!window->context.GetIntegerv || !window->context.GetString)
0010d 4c 39 b6 40 02
00 00 cmp QWORD PTR [rsi+576], r14
00114 0f 84 3a 04 00
00 je $LN6@glfwRefres
0011a 48 85 c0 test rax, rax
0011d 0f 84 31 04 00
00 je $LN6@glfwRefres
; 376 : }
; 377 :
; 378 : version = (const char*)window->context.GetString(GL_VERSION);
00123 b9 02 1f 00 00 mov ecx, 7938 ; 00001f02H
00128 ff d0 call rax
0012a 4c 8b f8 mov r15, rax
; 379 : if (!version)
0012d 48 85 c0 test rax, rax
00130 0f 85 8a 00 00
00 jne $LL7@glfwRefres
; 618 : _GLFWwindow* window = (_GLFWwindow*)handle;
00136 41 81 7d 00 01
00 03 00 cmp DWORD PTR [r13], 196609 ; 00030001H
0013e 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:??_C@_0CN@GOPDCGGI@OpenGL?5ES?5version?5string?5retrie@
00145 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CK@DKAFEDIC@OpenGL?5version?5string?5retrieval@
0014c b9 08 00 01 00 mov ecx, 65544 ; 00010008H
00151 48 0f 45 d0 cmovne rdx, rax
00155 e8 00 00 00 00 call _glfwInputError
; 621 : _GLFW_REQUIRE_INIT();
0015a 44 39 35 00 00
00 00 cmp DWORD PTR _glfw, r14d
00161 0f 84 7d 01 00
00 je $LN223@glfwRefres
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; 66 : return TlsGetValue(tls->win32.index);
00167 8b 0d a8 19 00
00 mov ecx, DWORD PTR _glfw+6568
0016d ff 15 00 00 00
00 call QWORD PTR __imp_TlsGetValue
00173 4c 8b c0 mov r8, rax
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; 625 : if (window && window->context.client == GLFW_NO_API)
00176 48 85 db test rbx, rbx
00179 74 0d je SHORT $LN103@glfwRefres
0017b 44 39 b3 08 02
00 00 cmp DWORD PTR [rbx+520], r14d
00182 0f 84 07 04 00
00 je $LN224@glfwRefres
$LN103@glfwRefres:
; 630 : }
; 631 :
; 632 : if (previous)
00188 4d 85 c0 test r8, r8
0018b 0f 84 31 04 00
00 je $LN65@glfwRefres
; 633 : {
; 634 : if (!window || window->context.source != previous->context.source)
00191 48 85 db test rbx, rbx
00194 74 12 je SHORT $LN106@glfwRefres
00196 8b 80 0c 02 00
00 mov eax, DWORD PTR [rax+524]
0019c 39 83 0c 02 00
00 cmp DWORD PTR [rbx+524], eax
001a2 0f 84 1f 04 00
00 je $LN133@glfwRefres
$LN106@glfwRefres:
; 635 : previous->context.makeCurrent(NULL);
001a8 33 c9 xor ecx, ecx
001aa 41 ff 90 50 02
00 00 call QWORD PTR [r8+592]
; 485 :
; 486 : if (flags & GL_CONTEXT_FLAG_DEBUG_BIT)
001b1 e9 0c 04 00 00 jmp $LN65@glfwRefres
001b6 66 66 0f 1f 84
00 00 00 00 00 npad 10
$LL7@glfwRefres:
; 397 : {
; 398 : const size_t length = strlen(prefixes[i]);
001c0 48 c7 c7 ff ff
ff ff mov rdi, -1
$LL143@glfwRefres:
001c7 48 ff c7 inc rdi
001ca 80 3c 2f 00 cmp BYTE PTR [rdi+rbp], 0
001ce 75 f7 jne SHORT $LL143@glfwRefres
; 399 :
; 400 : if (strncmp(version, prefixes[i], length) == 0)
001d0 4c 8b c7 mov r8, rdi
001d3 48 8b d5 mov rdx, rbp
001d6 49 8b cf mov rcx, r15
001d9 ff 15 00 00 00
00 call QWORD PTR __imp_strncmp
001df 85 c0 test eax, eax
001e1 74 0f je SHORT $LN122@glfwRefres
; 380 : {
; 381 : if (ctxconfig->client == GLFW_OPENGL_API)
; 382 : {
; 383 : _glfwInputError(GLFW_PLATFORM_ERROR,
; 384 : "OpenGL version string retrieval is broken");
; 385 : }
; 386 : else
; 387 : {
; 388 : _glfwInputError(GLFW_PLATFORM_ERROR,
; 389 : "OpenGL ES version string retrieval is broken");
; 390 : }
; 391 :
; 392 : glfwMakeContextCurrent((GLFWwindow*)previous);
; 393 : return GLFW_FALSE;
; 394 : }
; 395 :
; 396 : for (i = 0; prefixes[i]; i++)
001e3 4a 8b 6c f4 38 mov rbp, QWORD PTR prefixes$[rsp+r14*8+8]
001e8 49 ff c6 inc r14
001eb 48 85 ed test rbp, rbp
001ee 75 d0 jne SHORT $LL7@glfwRefres
; 399 :
; 400 : if (strncmp(version, prefixes[i], length) == 0)
001f0 eb 0d jmp SHORT $LN3@glfwRefres
$LN122@glfwRefres:
; 401 : {
; 402 : version += length;
001f2 4c 03 ff add r15, rdi
; 403 : window->context.client = GLFW_OPENGL_ES_API;
001f5 c7 86 08 02 00
00 02 00 03 00 mov DWORD PTR [rsi+520], 196610 ; 00030002H
$LN3@glfwRefres:
; 404 : break;
; 405 : }
; 406 : }
; 407 :
; 408 : if (!sscanf(version, "%d.%d.%d",
001ff 48 8d 86 18 02
00 00 lea rax, QWORD PTR [rsi+536]
00206 49 8b cf mov rcx, r15
00209 4c 8d 8e 14 02
00 00 lea r9, QWORD PTR [rsi+532]
00210 48 89 44 24 20 mov QWORD PTR [rsp+32], rax
00215 4c 8d 86 10 02
00 00 lea r8, QWORD PTR [rsi+528]
0021c 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_08FOJKHHJA@?$CFd?4?$CFd?4?$CFd@
00223 e8 00 00 00 00 call sscanf
00228 85 c0 test eax, eax
0022a 75 57 jne SHORT $LN11@glfwRefres
; 618 : _GLFWwindow* window = (_GLFWwindow*)handle;
0022c 81 be 08 02 00
00 01 00 03 00 cmp DWORD PTR [rsi+520], 196609 ; 00030001H
00236 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:??_C@_0CN@FALFGDO@No?5version?5found?5in?5OpenGL?5ES?5v@
0023d 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CK@DDNMEIKD@No?5version?5found?5in?5OpenGL?5vers@
00244 b9 08 00 01 00 mov ecx, 65544 ; 00010008H
00249 48 0f 45 d0 cmovne rdx, rax
0024d e8 00 00 00 00 call _glfwInputError
; 621 : _GLFW_REQUIRE_INIT();
00252 83 3d 00 00 00
00 00 cmp DWORD PTR _glfw, 0
00259 0f 84 85 00 00
00 je $LN223@glfwRefres
$LN72@glfwRefres:
; 374 : glfwMakeContextCurrent((GLFWwindow*)previous);
; 375 : return GLFW_FALSE;
0025f 8b 0d a8 19 00
00 mov ecx, DWORD PTR _glfw+6568
00265 ff 15 00 00 00
00 call QWORD PTR __imp_TlsGetValue
0026b 48 8b d0 mov rdx, rax
0026e 48 85 db test rbx, rbx
00271 0f 84 2b 03 00
00 je $LN63@glfwRefres
00277 83 bb 08 02 00
00 00 cmp DWORD PTR [rbx+520], 0
0027e e9 0a 03 00 00 jmp $LN217@glfwRefres
$LN11@glfwRefres:
; 409 : &window->context.major,
; 410 : &window->context.minor,
; 411 : &window->context.revision))
; 412 : {
; 413 : if (window->context.client == GLFW_OPENGL_API)
; 414 : {
; 415 : _glfwInputError(GLFW_PLATFORM_ERROR,
; 416 : "No version found in OpenGL version string");
; 417 : }
; 418 : else
; 419 : {
; 420 : _glfwInputError(GLFW_PLATFORM_ERROR,
; 421 : "No version found in OpenGL ES version string");
; 422 : }
; 423 :
; 424 : glfwMakeContextCurrent((GLFWwindow*)previous);
; 425 : return GLFW_FALSE;
; 426 : }
; 427 :
; 428 : if (window->context.major < ctxconfig->major ||
00283 8b 86 10 02 00
00 mov eax, DWORD PTR [rsi+528]
00289 45 8b 45 08 mov r8d, DWORD PTR [r13+8]
0028d 41 3b c0 cmp eax, r8d
00290 0f 8c 81 02 00
00 jl $LN132@glfwRefres
00296 75 10 jne SHORT $LN131@glfwRefres
00298 8b 8e 14 02 00
00 mov ecx, DWORD PTR [rsi+532]
0029e 41 3b 4d 0c cmp ecx, DWORD PTR [r13+12]
002a2 0f 8c 75 02 00
00 jl $LN128@glfwRefres
$LN131@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)
; 440 : {
; 441 : _glfwInputError(GLFW_VERSION_UNAVAILABLE,
; 442 : "Requested OpenGL version %i.%i, got version %i.%i",
; 443 : ctxconfig->major, ctxconfig->minor,
; 444 : window->context.major, window->context.minor);
; 445 : }
; 446 : else
; 447 : {
; 448 : _glfwInputError(GLFW_VERSION_UNAVAILABLE,
; 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);
; 455 : return GLFW_FALSE;
; 456 : }
; 457 :
; 458 : if (window->context.major >= 3)
002a8 83 f8 03 cmp eax, 3
002ab 7c 48 jl SHORT $LN130@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)
002ad 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:??_C@_0N@PILJCBOD@glGetStringi@
002b4 ff 96 70 02 00
00 call QWORD PTR [rsi+624]
002ba 48 89 86 38 02
00 00 mov QWORD PTR [rsi+568], rax
; 465 : window->context.getProcAddress("glGetStringi");
; 466 : if (!window->context.GetStringi)
002c1 48 85 c0 test rax, rax
002c4 75 2f jne SHORT $LN130@glfwRefres
; 467 : {
; 468 : _glfwInputError(GLFW_PLATFORM_ERROR,
002c6 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CA@LDAANPIM@Entry?5point?5retrieval?5is?5broken@
002cd b9 08 00 01 00 mov ecx, 65544 ; 00010008H
002d2 e8 00 00 00 00 call _glfwInputError
$LN225@glfwRefres:
; 374 : glfwMakeContextCurrent((GLFWwindow*)previous);
; 375 : return GLFW_FALSE;
002d7 83 3d 00 00 00
00 00 cmp DWORD PTR _glfw, 0
002de 0f 85 7b ff ff
ff jne $LN72@glfwRefres
$LN223@glfwRefres:
002e4 33 d2 xor edx, edx
002e6 b9 01 00 01 00 mov ecx, 65537 ; 00010001H
002eb e8 00 00 00 00 call _glfwInputError
002f0 e9 db 02 00 00 jmp $LN67@glfwRefres
$LN130@glfwRefres:
; 469 : "Entry point retrieval is broken");
; 470 : glfwMakeContextCurrent((GLFWwindow*)previous);
; 471 : return GLFW_FALSE;
; 472 : }
; 473 : }
; 474 :
; 475 : if (window->context.client == GLFW_OPENGL_API)
002f5 81 be 08 02 00
00 01 00 03 00 cmp DWORD PTR [rsi+520], 196609 ; 00030001H
002ff 0f 85 d3 00 00
00 jne $LN20@glfwRefres
; 476 : {
; 477 : // Read back context flags (OpenGL 3.0 and above)
; 478 : if (window->context.major >= 3)
00305 83 be 10 02 00
00 03 cmp DWORD PTR [rsi+528], 3
0030c 7c 59 jl SHORT $LN27@glfwRefres
; 479 : {
; 480 : GLint flags;
; 481 : window->context.GetIntegerv(GL_CONTEXT_FLAGS, &flags);
0030e 48 8d 54 24 50 lea rdx, QWORD PTR flags$4[rsp]
00313 b9 1e 82 00 00 mov ecx, 33310 ; 0000821eH
00318 ff 96 40 02 00
00 call QWORD PTR [rsi+576]
; 482 :
; 483 : if (flags & GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT)
0031e 8b 44 24 50 mov eax, DWORD PTR flags$4[rsp]
00322 a8 01 test al, 1
00324 74 0a je SHORT $LN23@glfwRefres
; 484 : window->context.forward = GLFW_TRUE;
00326 c7 86 1c 02 00
00 01 00 00 00 mov DWORD PTR [rsi+540], 1
$LN23@glfwRefres:
; 485 :
; 486 : if (flags & GL_CONTEXT_FLAG_DEBUG_BIT)
00330 a8 02 test al, 2
00332 75 1b jne SHORT $LN141@glfwRefres
; 487 : window->context.debug = GLFW_TRUE;
; 488 : else if (glfwExtensionSupported("GL_ARB_debug_output") &&
00334 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:??_C@_0BE@OHIPHHMJ@GL_ARB_debug_output@
0033b e8 00 00 00 00 call glfwExtensionSupported
00340 85 c0 test eax, eax
00342 74 6b je SHORT $LN144@glfwRefres
00344 41 83 7d 14 00 cmp DWORD PTR [r13+20], 0
00349 74 64 je SHORT $LN144@glfwRefres
0034b 8b 44 24 50 mov eax, DWORD PTR flags$4[rsp]
$LN141@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;
0034f c7 86 20 02 00
00 01 00 00 00 mov DWORD PTR [rsi+544], 1
$LN26@glfwRefres:
; 495 : }
; 496 :
; 497 : if (flags & GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR)
00359 a8 08 test al, 8
0035b 74 0a je SHORT $LN27@glfwRefres
; 498 : window->context.noerror = GLFW_TRUE;
0035d c7 86 24 02 00
00 01 00 00 00 mov DWORD PTR [rsi+548], 1
$LN27@glfwRefres:
; 499 : }
; 500 :
; 501 : // Read back OpenGL context profile (OpenGL 3.2 and above)
; 502 : if (window->context.major >= 4 ||
00367 8b 86 10 02 00
00 mov eax, DWORD PTR [rsi+528]
0036d 83 f8 04 cmp eax, 4
00370 7d 0e jge SHORT $LN29@glfwRefres
00372 83 f8 03 cmp eax, 3
00375 75 58 jne SHORT $LN34@glfwRefres
00377 83 be 14 02 00
00 02 cmp DWORD PTR [rsi+532], 2
0037e 7c 4f jl SHORT $LN34@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);
00380 48 8d 54 24 50 lea rdx, QWORD PTR mask$3[rsp]
00385 b9 26 91 00 00 mov ecx, 37158 ; 00009126H
0038a ff 96 40 02 00
00 call QWORD PTR [rsi+576]
; 507 :
; 508 : if (mask & GL_CONTEXT_COMPATIBILITY_PROFILE_BIT)
00390 8b 44 24 50 mov eax, DWORD PTR mask$3[rsp]
00394 a8 02 test al, 2
00396 75 2d jne SHORT $LN139@glfwRefres
; 509 : window->context.profile = GLFW_OPENGL_COMPAT_PROFILE;
; 510 : else if (mask & GL_CONTEXT_CORE_PROFILE_BIT)
00398 a8 01 test al, 1
0039a 74 19 je SHORT $LN32@glfwRefres
; 511 : window->context.profile = GLFW_OPENGL_CORE_PROFILE;
0039c c7 86 28 02 00
00 01 20 03 00 mov DWORD PTR [rsi+552], 204801 ; 00032001H
; 519 : }
; 520 : }
; 521 :
; 522 : // Read back robustness strategy
; 523 : if (glfwExtensionSupported("GL_ARB_robustness"))
003a6 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:??_C@_0BC@EOBKJDCM@GL_ARB_robustness@
; 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,
; 530 : &strategy);
; 531 :
; 532 : if (strategy == GL_LOSE_CONTEXT_ON_RESET_ARB)
; 533 : window->context.robustness = GLFW_LOSE_CONTEXT_ON_RESET;
; 534 : else if (strategy == GL_NO_RESET_NOTIFICATION_ARB)
; 535 : window->context.robustness = GLFW_NO_RESET_NOTIFICATION;
; 536 : }
; 537 : }
003ad eb 30 jmp SHORT $LN222@glfwRefres
$LN144@glfwRefres:
; 487 : window->context.debug = GLFW_TRUE;
; 488 : else if (glfwExtensionSupported("GL_ARB_debug_output") &&
003af 8b 44 24 50 mov eax, DWORD PTR flags$4[rsp]
003b3 eb a4 jmp SHORT $LN26@glfwRefres
$LN32@glfwRefres:
; 512 : else if (glfwExtensionSupported("GL_ARB_compatibility"))
003b5 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:??_C@_0BF@CJMIIMBG@GL_ARB_compatibility@
003bc e8 00 00 00 00 call glfwExtensionSupported
003c1 85 c0 test eax, eax
003c3 74 0a je SHORT $LN34@glfwRefres
$LN139@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;
003c5 c7 86 28 02 00
00 02 20 03 00 mov DWORD PTR [rsi+552], 204802 ; 00032002H
$LN34@glfwRefres:
; 519 : }
; 520 : }
; 521 :
; 522 : // Read back robustness strategy
; 523 : if (glfwExtensionSupported("GL_ARB_robustness"))
003cf 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:??_C@_0BC@EOBKJDCM@GL_ARB_robustness@
; 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,
; 530 : &strategy);
; 531 :
; 532 : if (strategy == GL_LOSE_CONTEXT_ON_RESET_ARB)
; 533 : window->context.robustness = GLFW_LOSE_CONTEXT_ON_RESET;
; 534 : else if (strategy == GL_NO_RESET_NOTIFICATION_ARB)
; 535 : window->context.robustness = GLFW_NO_RESET_NOTIFICATION;
; 536 : }
; 537 : }
003d6 eb 07 jmp SHORT $LN222@glfwRefres
$LN20@glfwRefres:
; 538 : else
; 539 : {
; 540 : // Read back robustness strategy
; 541 : if (glfwExtensionSupported("GL_EXT_robustness"))
003d8 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:??_C@_0BC@CLDFFND@GL_EXT_robustness@
$LN222@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,
; 548 : &strategy);
; 549 :
; 550 : if (strategy == GL_LOSE_CONTEXT_ON_RESET_ARB)
; 551 : window->context.robustness = GLFW_LOSE_CONTEXT_ON_RESET;
; 552 : else if (strategy == GL_NO_RESET_NOTIFICATION_ARB)
; 553 : window->context.robustness = GLFW_NO_RESET_NOTIFICATION;
; 554 : }
; 555 : }
; 556 :
; 557 : if (glfwExtensionSupported("GL_KHR_context_flush_control"))
003df e8 00 00 00 00 call glfwExtensionSupported
003e4 85 c0 test eax, eax
003e6 74 38 je SHORT $LN42@glfwRefres
003e8 48 8d 54 24 50 lea rdx, QWORD PTR strategy$2[rsp]
003ed b9 56 82 00 00 mov ecx, 33366 ; 00008256H
003f2 ff 96 40 02 00
00 call QWORD PTR [rsi+576]
003f8 8b 44 24 50 mov eax, DWORD PTR strategy$2[rsp]
003fc 3d 52 82 00 00 cmp eax, 33362 ; 00008252H
00401 75 0c jne SHORT $LN40@glfwRefres
00403 c7 86 2c 02 00
00 02 10 03 00 mov DWORD PTR [rsi+556], 200706 ; 00031002H
0040d eb 11 jmp SHORT $LN42@glfwRefres
$LN40@glfwRefres:
0040f 3d 61 82 00 00 cmp eax, 33377 ; 00008261H
00414 75 0a jne SHORT $LN42@glfwRefres
00416 c7 86 2c 02 00
00 01 10 03 00 mov DWORD PTR [rsi+556], 200705 ; 00031001H
$LN42@glfwRefres:
00420 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:??_C@_0BN@FNDGKECA@GL_KHR_context_flush_control@
00427 e8 00 00 00 00 call glfwExtensionSupported
0042c 85 c0 test eax, eax
0042e 74 35 je SHORT $LN46@glfwRefres
; 558 : {
; 559 : GLint behavior;
; 560 : window->context.GetIntegerv(GL_CONTEXT_RELEASE_BEHAVIOR, &behavior);
00430 48 8d 54 24 50 lea rdx, QWORD PTR behavior$1[rsp]
00435 b9 fb 82 00 00 mov ecx, 33531 ; 000082fbH
0043a ff 96 40 02 00
00 call QWORD PTR [rsi+576]
; 561 :
; 562 : if (behavior == GL_NONE)
00440 8b 44 24 50 mov eax, DWORD PTR behavior$1[rsp]
00444 85 c0 test eax, eax
00446 75 0c jne SHORT $LN44@glfwRefres
; 563 : window->context.release = GLFW_RELEASE_BEHAVIOR_NONE;
00448 c7 86 30 02 00
00 02 50 03 00 mov DWORD PTR [rsi+560], 217090 ; 00035002H
00452 eb 11 jmp SHORT $LN46@glfwRefres
$LN44@glfwRefres:
; 564 : else if (behavior == GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH)
00454 3d fc 82 00 00 cmp eax, 33532 ; 000082fcH
00459 75 0a jne SHORT $LN46@glfwRefres
; 565 : window->context.release = GLFW_RELEASE_BEHAVIOR_FLUSH;
0045b c7 86 30 02 00
00 01 50 03 00 mov DWORD PTR [rsi+560], 217089 ; 00035001H
$LN46@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)
00465 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:??_C@_07IBAPPAHJ@glClear@
0046c ff 96 70 02 00
00 call QWORD PTR [rsi+624]
; 572 : window->context.getProcAddress("glClear");
; 573 : glClear(GL_COLOR_BUFFER_BIT);
00472 b9 00 40 00 00 mov ecx, 16384 ; 00004000H
00477 ff d0 call rax
; 574 :
; 575 : if (window->doublebuffer)
00479 83 7e 30 00 cmp DWORD PTR [rsi+48], 0
0047d 74 09 je SHORT $LN47@glfwRefres
; 576 : window->context.swapBuffers(window);
0047f 48 8b ce mov rcx, rsi
00482 ff 96 58 02 00
00 call QWORD PTR [rsi+600]
$LN47@glfwRefres:
; 621 : _GLFW_REQUIRE_INIT();
00488 83 3d 00 00 00
00 00 cmp DWORD PTR _glfw, 0
0048f 75 16 jne SHORT $LN92@glfwRefres
00491 33 d2 xor edx, edx
00493 b9 01 00 01 00 mov ecx, 65537 ; 00010001H
00498 e8 00 00 00 00 call _glfwInputError
; 577 : }
; 578 :
; 579 : glfwMakeContextCurrent((GLFWwindow*)previous);
; 580 : return GLFW_TRUE;
0049d b8 01 00 00 00 mov eax, 1
004a2 e9 2b 01 00 00 jmp $LN1@glfwRefres
$LN92@glfwRefres:
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; 66 : return TlsGetValue(tls->win32.index);
004a7 8b 0d a8 19 00
00 mov ecx, DWORD PTR _glfw+6568
004ad ff 15 00 00 00
00 call QWORD PTR __imp_TlsGetValue
004b3 48 8b d0 mov rdx, rax
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; 625 : if (window && window->context.client == GLFW_NO_API)
004b6 48 85 db test rbx, rbx
004b9 74 24 je SHORT $LN93@glfwRefres
004bb 83 bb 08 02 00
00 00 cmp DWORD PTR [rbx+520], 0
004c2 75 1b jne SHORT $LN93@glfwRefres
; 626 : {
; 627 : _glfwInputError(GLFW_NO_WINDOW_CONTEXT,
004c4 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0EK@HBJBDMAL@Cannot?5make?5current?5with?5a?5wind@
004cb b9 0a 00 01 00 mov ecx, 65546 ; 0001000aH
004d0 e8 00 00 00 00 call _glfwInputError
; 577 : }
; 578 :
; 579 : glfwMakeContextCurrent((GLFWwindow*)previous);
; 580 : return GLFW_TRUE;
004d5 b8 01 00 00 00 mov eax, 1
004da e9 f3 00 00 00 jmp $LN1@glfwRefres
$LN93@glfwRefres:
; 632 : if (previous)
004df 48 85 d2 test rdx, rdx
004e2 74 1b je SHORT $LN95@glfwRefres
; 633 : {
; 634 : if (!window || window->context.source != previous->context.source)
004e4 48 85 db test rbx, rbx
004e7 74 0e je SHORT $LN96@glfwRefres
004e9 8b 80 0c 02 00
00 mov eax, DWORD PTR [rax+524]
004ef 39 83 0c 02 00
00 cmp DWORD PTR [rbx+524], eax
004f5 74 0d je SHORT $LN135@glfwRefres
$LN96@glfwRefres:
; 635 : previous->context.makeCurrent(NULL);
004f7 33 c9 xor ecx, ecx
004f9 ff 92 50 02 00
00 call QWORD PTR [rdx+592]
$LN95@glfwRefres:
; 636 : }
; 637 :
; 638 : if (window)
004ff 48 85 db test rbx, rbx
00502 74 09 je SHORT $LN97@glfwRefres
$LN135@glfwRefres:
; 639 : window->context.makeCurrent(window);
00504 48 8b cb mov rcx, rbx
00507 ff 93 50 02 00
00 call QWORD PTR [rbx+592]
$LN97@glfwRefres:
; 577 : }
; 578 :
; 579 : glfwMakeContextCurrent((GLFWwindow*)previous);
; 580 : return GLFW_TRUE;
0050d b8 01 00 00 00 mov eax, 1
00512 e9 bb 00 00 00 jmp $LN1@glfwRefres
$LN132@glfwRefres:
; 409 : &window->context.major,
; 410 : &window->context.minor,
; 411 : &window->context.revision))
; 412 : {
; 413 : if (window->context.client == GLFW_OPENGL_API)
; 414 : {
; 415 : _glfwInputError(GLFW_PLATFORM_ERROR,
; 416 : "No version found in OpenGL version string");
; 417 : }
; 418 : else
; 419 : {
; 420 : _glfwInputError(GLFW_PLATFORM_ERROR,
; 421 : "No version found in OpenGL ES version string");
; 422 : }
; 423 :
; 424 : glfwMakeContextCurrent((GLFWwindow*)previous);
; 425 : return GLFW_FALSE;
; 426 : }
; 427 :
; 428 : if (window->context.major < ctxconfig->major ||
00517 8b 8e 14 02 00
00 mov ecx, DWORD PTR [rsi+532]
$LN128@glfwRefres:
; 618 : _GLFWwindow* window = (_GLFWwindow*)handle;
0051d 81 be 08 02 00
00 01 00 03 00 cmp DWORD PTR [rsi+520], 196609 ; 00030001H
00527 4c 8d 0d 00 00
00 00 lea r9, OFFSET FLAT:??_C@_0DF@EFFMOKHE@Requested?5OpenGL?5ES?5version?5?$CFi?4@
0052e 89 4c 24 28 mov DWORD PTR [rsp+40], ecx
00532 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0DC@KIAJNHJN@Requested?5OpenGL?5version?5?$CFi?4?$CFi?0@
00539 49 0f 45 d1 cmovne rdx, r9
0053d 89 44 24 20 mov DWORD PTR [rsp+32], eax
00541 45 8b 4d 0c mov r9d, DWORD PTR [r13+12]
00545 b9 07 00 01 00 mov ecx, 65543 ; 00010007H
0054a e8 00 00 00 00 call _glfwInputError
; 621 : _GLFW_REQUIRE_INIT();
0054f e9 83 fd ff ff jmp $LN225@glfwRefres
$LN6@glfwRefres:
; 372 : {
; 373 : _glfwInputError(GLFW_PLATFORM_ERROR, "Entry point retrieval is broken");
00554 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CA@LDAANPIM@Entry?5point?5retrieval?5is?5broken@
0055b b9 08 00 01 00 mov ecx, 65544 ; 00010008H
00560 e8 00 00 00 00 call _glfwInputError
; 621 : _GLFW_REQUIRE_INIT();
00565 44 39 35 00 00
00 00 cmp DWORD PTR _glfw, r14d
0056c 0f 84 72 fd ff
ff je $LN223@glfwRefres
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; 66 : return TlsGetValue(tls->win32.index);
00572 8b 0d a8 19 00
00 mov ecx, DWORD PTR _glfw+6568
00578 ff 15 00 00 00
00 call QWORD PTR __imp_TlsGetValue
0057e 48 8b d0 mov rdx, rax
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; 625 : if (window && window->context.client == GLFW_NO_API)
00581 48 85 db test rbx, rbx
00584 74 1c je SHORT $LN63@glfwRefres
00586 44 39 b3 08 02
00 00 cmp DWORD PTR [rbx+520], r14d
$LN217@glfwRefres:
; 374 : glfwMakeContextCurrent((GLFWwindow*)previous);
; 375 : return GLFW_FALSE;
0058d 75 13 jne SHORT $LN63@glfwRefres
$LN224@glfwRefres:
0058f 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0EK@HBJBDMAL@Cannot?5make?5current?5with?5a?5wind@
00596 b9 0a 00 01 00 mov ecx, 65546 ; 0001000aH
0059b e8 00 00 00 00 call _glfwInputError
005a0 eb 2e jmp SHORT $LN67@glfwRefres
$LN63@glfwRefres:
005a2 48 85 d2 test rdx, rdx
005a5 74 1b je SHORT $LN65@glfwRefres
005a7 48 85 db test rbx, rbx
005aa 74 0e je SHORT $LN66@glfwRefres
005ac 8b 80 0c 02 00
00 mov eax, DWORD PTR [rax+524]
005b2 39 83 0c 02 00
00 cmp DWORD PTR [rbx+524], eax
005b8 74 0d je SHORT $LN133@glfwRefres
$LN66@glfwRefres:
005ba 33 c9 xor ecx, ecx
005bc ff 92 50 02 00
00 call QWORD PTR [rdx+592]
$LN65@glfwRefres:
005c2 48 85 db test rbx, rbx
005c5 74 09 je SHORT $LN67@glfwRefres
$LN133@glfwRefres:
005c7 48 8b cb mov rcx, rbx
005ca ff 93 50 02 00
00 call QWORD PTR [rbx+592]
$LN67@glfwRefres:
005d0 33 c0 xor eax, eax
$LN1@glfwRefres:
005d2 4c 8b bc 24 a8
00 00 00 mov r15, QWORD PTR [rsp+168]
; 581 : }
005da 48 8b bc 24 a0
00 00 00 mov rdi, QWORD PTR [rsp+160]
005e2 48 8b 4c 24 58 mov rcx, QWORD PTR __$ArrayPad$[rsp]
005e7 48 33 cc xor rcx, rsp
005ea e8 00 00 00 00 call __security_check_cookie
005ef 48 83 c4 60 add rsp, 96 ; 00000060H
005f3 41 5e pop r14
005f5 41 5d pop r13
005f7 5e pop rsi
005f8 5d pop rbp
005f9 5b pop rbx
005fa c3 ret 0
_glfwRefreshContextAttribs ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; COMDAT _glfwStringInExtensionString
_TEXT SEGMENT
string$ = 48
extensions$ = 56
_glfwStringInExtensionString PROC ; COMDAT
; 586 : {
$LN26:
00000 48 89 5c 24 08 mov QWORD PTR [rsp+8], rbx
00005 57 push rdi
00006 48 83 ec 20 sub rsp, 32 ; 00000020H
0000a 48 8b fa mov rdi, rdx
0000d 48 8b d9 mov rbx, rcx
; 587 : const char* start = extensions;
; 588 :
; 589 : for (;;)
; 590 : {
; 591 : const char* where;
; 592 : const char* terminator;
; 593 :
; 594 : where = strstr(start, string);
00010 48 8b d1 mov rdx, rcx
00013 48 8b cf mov rcx, rdi
00016 ff 15 00 00 00
00 call QWORD PTR __imp_strstr
; 595 : if (!where)
0001c 48 85 c0 test rax, rax
0001f 74 43 je SHORT $LN12@glfwString
00021 0f 1f 40 00 66
66 66 0f 1f 84
00 00 00 00 00 npad 15
$LL2@glfwString:
; 597 :
; 598 : terminator = where + strlen(string);
00030 48 c7 c1 ff ff
ff ff mov rcx, -1
$LL20@glfwString:
00037 48 ff c1 inc rcx
0003a 80 3c 0b 00 cmp BYTE PTR [rbx+rcx], 0
0003e 75 f7 jne SHORT $LL20@glfwString
00040 48 03 c8 add rcx, rax
; 599 : if (where == start || *(where - 1) == ' ')
00043 48 3b c7 cmp rax, rdi
00046 74 06 je SHORT $LN7@glfwString
00048 80 78 ff 20 cmp BYTE PTR [rax-1], 32 ; 00000020H
0004c 75 05 jne SHORT $LN18@glfwString
$LN7@glfwString:
; 600 : {
; 601 : if (*terminator == ' ' || *terminator == '\0')
0004e f6 01 df test BYTE PTR [rcx], 223 ; 000000dfH
00051 74 1e je SHORT $LN13@glfwString
$LN18@glfwString:
; 587 : const char* start = extensions;
; 588 :
; 589 : for (;;)
; 590 : {
; 591 : const char* where;
; 592 : const char* terminator;
; 593 :
; 594 : where = strstr(start, string);
00053 48 8b d3 mov rdx, rbx
; 602 : break;
; 603 : }
; 604 :
; 605 : start = terminator;
00056 48 8b f9 mov rdi, rcx
00059 ff 15 00 00 00
00 call QWORD PTR __imp_strstr
0005f 48 85 c0 test rax, rax
00062 75 cc jne SHORT $LL2@glfwString
$LN12@glfwString:
; 596 : return GLFW_FALSE;
00064 33 c0 xor eax, eax
; 606 : }
; 607 :
; 608 : return GLFW_TRUE;
; 609 : }
00066 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48]
0006b 48 83 c4 20 add rsp, 32 ; 00000020H
0006f 5f pop rdi
00070 c3 ret 0
$LN13@glfwString:
00071 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48]
00076 b8 01 00 00 00 mov eax, 1
0007b 48 83 c4 20 add rsp, 32 ; 00000020H
0007f 5f pop rdi
00080 c3 ret 0
_glfwStringInExtensionString ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; COMDAT glfwMakeContextCurrent
_TEXT SEGMENT
handle$ = 48
glfwMakeContextCurrent PROC ; COMDAT
; 617 : {
$LN18:
00000 40 53 push rbx
00002 48 83 ec 20 sub rsp, 32 ; 00000020H
; 618 : _GLFWwindow* window = (_GLFWwindow*)handle;
; 619 : _GLFWwindow* previous;
; 620 :
; 621 : _GLFW_REQUIRE_INIT();
00006 83 3d 00 00 00
00 00 cmp DWORD PTR _glfw, 0
0000d 48 8b d9 mov rbx, rcx
00010 75 11 jne SHORT $LN2@glfwMakeCo
00012 33 d2 xor edx, edx
00014 b9 01 00 01 00 mov ecx, 65537 ; 00010001H
; 640 : }
00019 48 83 c4 20 add rsp, 32 ; 00000020H
0001d 5b pop rbx
; 618 : _GLFWwindow* window = (_GLFWwindow*)handle;
; 619 : _GLFWwindow* previous;
; 620 :
; 621 : _GLFW_REQUIRE_INIT();
0001e e9 00 00 00 00 jmp _glfwInputError
$LN2@glfwMakeCo:
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; 66 : return TlsGetValue(tls->win32.index);
00023 8b 0d a8 19 00
00 mov ecx, DWORD PTR _glfw+6568
00029 ff 15 00 00 00
00 call QWORD PTR __imp_TlsGetValue
0002f 48 8b d0 mov rdx, rax
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; 625 : if (window && window->context.client == GLFW_NO_API)
00032 48 85 db test rbx, rbx
00035 74 1f je SHORT $LN3@glfwMakeCo
00037 83 bb 08 02 00
00 00 cmp DWORD PTR [rbx+520], 0
0003e 75 16 jne SHORT $LN3@glfwMakeCo
; 626 : {
; 627 : _glfwInputError(GLFW_NO_WINDOW_CONTEXT,
00040 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0EK@HBJBDMAL@Cannot?5make?5current?5with?5a?5wind@
00047 b9 0a 00 01 00 mov ecx, 65546 ; 0001000aH
; 640 : }
0004c 48 83 c4 20 add rsp, 32 ; 00000020H
00050 5b pop rbx
; 626 : {
; 627 : _glfwInputError(GLFW_NO_WINDOW_CONTEXT,
00051 e9 00 00 00 00 jmp _glfwInputError
$LN3@glfwMakeCo:
; 628 : "Cannot make current with a window that has no OpenGL or OpenGL ES context");
; 629 : return;
; 630 : }
; 631 :
; 632 : if (previous)
00056 48 85 d2 test rdx, rdx
00059 74 1b je SHORT $LN5@glfwMakeCo
; 633 : {
; 634 : if (!window || window->context.source != previous->context.source)
0005b 48 85 db test rbx, rbx
0005e 74 0e je SHORT $LN6@glfwMakeCo
00060 8b 80 0c 02 00
00 mov eax, DWORD PTR [rax+524]
00066 39 83 0c 02 00
00 cmp DWORD PTR [rbx+524], eax
0006c 74 0d je SHORT $LN11@glfwMakeCo
$LN6@glfwMakeCo:
; 635 : previous->context.makeCurrent(NULL);
0006e 33 c9 xor ecx, ecx
00070 ff 92 50 02 00
00 call QWORD PTR [rdx+592]
$LN5@glfwMakeCo:
; 636 : }
; 637 :
; 638 : if (window)
00076 48 85 db test rbx, rbx
00079 74 12 je SHORT $LN7@glfwMakeCo
$LN11@glfwMakeCo:
; 639 : window->context.makeCurrent(window);
0007b 48 8b cb mov rcx, rbx
; 626 : {
; 627 : _glfwInputError(GLFW_NO_WINDOW_CONTEXT,
0007e 48 8b 83 50 02
00 00 mov rax, QWORD PTR [rbx+592]
; 640 : }
00085 48 83 c4 20 add rsp, 32 ; 00000020H
00089 5b pop rbx
; 639 : window->context.makeCurrent(window);
0008a 48 ff e0 rex_jmp rax
$LN7@glfwMakeCo:
; 640 : }
0008d 48 83 c4 20 add rsp, 32 ; 00000020H
00091 5b pop rbx
00092 c3 ret 0
glfwMakeContextCurrent ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; COMDAT glfwGetCurrentContext
_TEXT SEGMENT
glfwGetCurrentContext PROC ; COMDAT
; 643 : {
$LN7:
00000 48 83 ec 28 sub rsp, 40 ; 00000028H
; 644 : _GLFW_REQUIRE_INIT_OR_RETURN(NULL);
00004 83 3d 00 00 00
00 00 cmp DWORD PTR _glfw, 0
0000b 75 13 jne SHORT $LN2@glfwGetCur
0000d 33 d2 xor edx, edx
0000f b9 01 00 01 00 mov ecx, 65537 ; 00010001H
00014 e8 00 00 00 00 call _glfwInputError
00019 33 c0 xor eax, eax
; 646 : }
0001b 48 83 c4 28 add rsp, 40 ; 00000028H
0001f c3 ret 0
$LN2@glfwGetCur:
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; 66 : return TlsGetValue(tls->win32.index);
00020 8b 0d a8 19 00
00 mov ecx, DWORD PTR _glfw+6568
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; 646 : }
00026 48 83 c4 28 add rsp, 40 ; 00000028H
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; 66 : return TlsGetValue(tls->win32.index);
0002a 48 ff 25 00 00
00 00 rex_jmp QWORD PTR __imp_TlsGetValue
glfwGetCurrentContext ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; COMDAT glfwSwapBuffers
_TEXT SEGMENT
handle$ = 8
glfwSwapBuffers PROC ; COMDAT
; 650 : _GLFWwindow* window = (_GLFWwindow*)handle;
; 651 : assert(window != NULL);
; 652 :
; 653 : _GLFW_REQUIRE_INIT();
00000 83 3d 00 00 00
00 00 cmp DWORD PTR _glfw, 0
00007 75 0c jne SHORT $LN2@glfwSwapBu
00009 33 d2 xor edx, edx
0000b b9 01 00 01 00 mov ecx, 65537 ; 00010001H
00010 e9 00 00 00 00 jmp _glfwInputError
$LN2@glfwSwapBu:
; 654 :
; 655 : if (window->context.client == GLFW_NO_API)
00015 83 b9 08 02 00
00 00 cmp DWORD PTR [rcx+520], 0
0001c 75 11 jne SHORT $LN3@glfwSwapBu
; 656 : {
; 657 : _glfwInputError(GLFW_NO_WINDOW_CONTEXT,
0001e 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0EI@PJFDHBJK@Cannot?5swap?5buffers?5of?5a?5window@
00025 b9 0a 00 01 00 mov ecx, 65546 ; 0001000aH
0002a e9 00 00 00 00 jmp _glfwInputError
$LN3@glfwSwapBu:
; 658 : "Cannot swap buffers of a window that has no OpenGL or OpenGL ES context");
; 659 : return;
; 660 : }
; 661 :
; 662 : window->context.swapBuffers(window);
0002f 48 ff a1 58 02
00 00 rex_jmp QWORD PTR [rcx+600]
glfwSwapBuffers ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; COMDAT glfwSwapInterval
_TEXT SEGMENT
interval$ = 48
glfwSwapInterval PROC ; COMDAT
; 666 : {
$LN10:
00000 40 53 push rbx
00002 48 83 ec 20 sub rsp, 32 ; 00000020H
; 667 : _GLFWwindow* window;
; 668 :
; 669 : _GLFW_REQUIRE_INIT();
00006 83 3d 00 00 00
00 00 cmp DWORD PTR _glfw, 0
0000d 8b d9 mov ebx, ecx
0000f 75 11 jne SHORT $LN2@glfwSwapIn
00011 33 d2 xor edx, edx
00013 b9 01 00 01 00 mov ecx, 65537 ; 00010001H
; 680 : }
00018 48 83 c4 20 add rsp, 32 ; 00000020H
0001c 5b pop rbx
; 667 : _GLFWwindow* window;
; 668 :
; 669 : _GLFW_REQUIRE_INIT();
0001d e9 00 00 00 00 jmp _glfwInputError
$LN2@glfwSwapIn:
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; 66 : return TlsGetValue(tls->win32.index);
00022 8b 0d a8 19 00
00 mov ecx, DWORD PTR _glfw+6568
00028 ff 15 00 00 00
00 call QWORD PTR __imp_TlsGetValue
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; 672 : if (!window)
0002e 48 85 c0 test rax, rax
00031 75 16 jne SHORT $LN3@glfwSwapIn
; 673 : {
; 674 : _glfwInputError(GLFW_NO_CURRENT_CONTEXT,
00033 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0EH@BEBOCAGI@Cannot?5set?5swap?5interval?5withou@
0003a b9 02 00 01 00 mov ecx, 65538 ; 00010002H
; 680 : }
0003f 48 83 c4 20 add rsp, 32 ; 00000020H
00043 5b pop rbx
; 673 : {
; 674 : _glfwInputError(GLFW_NO_CURRENT_CONTEXT,
00044 e9 00 00 00 00 jmp _glfwInputError
$LN3@glfwSwapIn:
; 675 : "Cannot set swap interval without a current OpenGL or OpenGL ES context");
; 676 : return;
; 677 : }
; 678 :
; 679 : window->context.swapInterval(interval);
00049 8b cb mov ecx, ebx
; 680 : }
0004b 48 83 c4 20 add rsp, 32 ; 00000020H
0004f 5b pop rbx
; 675 : "Cannot set swap interval without a current OpenGL or OpenGL ES context");
; 676 : return;
; 677 : }
; 678 :
; 679 : window->context.swapInterval(interval);
00050 48 ff a0 60 02
00 00 rex_jmp QWORD PTR [rax+608]
glfwSwapInterval ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; COMDAT glfwExtensionSupported
_TEXT SEGMENT
count$1 = 32
__$ArrayPad$ = 40
extension$ = 64
glfwExtensionSupported PROC ; COMDAT
; 683 : {
$LN39:
00000 40 56 push rsi
00002 48 83 ec 30 sub rsp, 48 ; 00000030H
00006 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
0000d 48 33 c4 xor rax, rsp
00010 48 89 44 24 28 mov QWORD PTR __$ArrayPad$[rsp], rax
; 684 : _GLFWwindow* window;
; 685 : assert(extension != NULL);
; 686 :
; 687 : _GLFW_REQUIRE_INIT_OR_RETURN(GLFW_FALSE);
00015 83 3d 00 00 00
00 00 cmp DWORD PTR _glfw, 0
0001c 48 8b f1 mov rsi, rcx
0001f 75 21 jne SHORT $LN5@glfwExtens
00021 33 d2 xor edx, edx
00023 b9 01 00 01 00 mov ecx, 65537 ; 00010001H
00028 e8 00 00 00 00 call _glfwInputError
0002d 33 c0 xor eax, eax
; 746 : }
0002f 48 8b 4c 24 28 mov rcx, QWORD PTR __$ArrayPad$[rsp]
00034 48 33 cc xor rcx, rsp
00037 e8 00 00 00 00 call __security_check_cookie
0003c 48 83 c4 30 add rsp, 48 ; 00000030H
00040 5e pop rsi
00041 c3 ret 0
$LN5@glfwExtens:
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; 66 : return TlsGetValue(tls->win32.index);
00042 8b 0d a8 19 00
00 mov ecx, DWORD PTR _glfw+6568
00048 48 89 7c 24 50 mov QWORD PTR [rsp+80], rdi
0004d ff 15 00 00 00
00 call QWORD PTR __imp_TlsGetValue
00053 48 8b f8 mov rdi, rax
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; 690 : if (!window)
00056 48 85 c0 test rax, rax
00059 75 18 jne SHORT $LN6@glfwExtens
; 691 : {
; 692 : _glfwInputError(GLFW_NO_CURRENT_CONTEXT,
0005b 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0EF@NMJGLODJ@Cannot?5query?5extension?5without?5@
00062 b9 02 00 01 00 mov ecx, 65538 ; 00010002H
00067 e8 00 00 00 00 call _glfwInputError
; 693 : "Cannot query extension without a current OpenGL or OpenGL ES context");
; 694 : return GLFW_FALSE;
0006c 33 c0 xor eax, eax
0006e e9 8a 00 00 00 jmp $LN36@glfwExtens
$LN6@glfwExtens:
; 695 : }
; 696 :
; 697 : if (*extension == '\0')
00073 80 3e 00 cmp BYTE PTR [rsi], 0
00076 75 15 jne SHORT $LN7@glfwExtens
; 698 : {
; 699 : _glfwInputError(GLFW_INVALID_VALUE, "Extension name cannot be an empty string");
00078 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CJ@JDBBFPLM@Extension?5name?5cannot?5be?5an?5emp@
0007f b9 04 00 01 00 mov ecx, 65540 ; 00010004H
00084 e8 00 00 00 00 call _glfwInputError
; 700 : return GLFW_FALSE;
00089 33 c0 xor eax, eax
0008b eb 70 jmp SHORT $LN36@glfwExtens
$LN7@glfwExtens:
; 701 : }
; 702 :
; 703 : if (window->context.major >= 3)
0008d 83 b8 10 02 00
00 03 cmp DWORD PTR [rax+528], 3
00094 48 89 5c 24 48 mov QWORD PTR [rsp+72], rbx
00099 7c 7a jl SHORT $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);
0009b 48 8d 54 24 20 lea rdx, QWORD PTR count$1[rsp]
000a0 b9 1d 82 00 00 mov ecx, 33309 ; 0000821dH
000a5 ff 90 40 02 00
00 call QWORD PTR [rax+576]
; 711 :
; 712 : for (i = 0; i < count; i++)
000ab 33 db xor ebx, ebx
000ad 39 5c 24 20 cmp DWORD PTR count$1[rsp], ebx
000b1 7e 3c jle SHORT $LN13@glfwExtens
$LL4@glfwExtens:
; 713 : {
; 714 : const char* en = (const char*)
000b3 8b d3 mov edx, ebx
000b5 b9 03 1f 00 00 mov ecx, 7939 ; 00001f03H
000ba ff 97 38 02 00
00 call QWORD PTR [rdi+568]
; 715 : window->context.GetStringi(GL_EXTENSIONS, i);
; 716 : if (!en)
000c0 48 85 c0 test rax, rax
000c3 74 60 je SHORT $LN18@glfwExtens
; 717 : {
; 718 : _glfwInputError(GLFW_PLATFORM_ERROR,
; 719 : "Extension string retrieval is broken");
; 720 : return GLFW_FALSE;
; 721 : }
; 722 :
; 723 : if (strcmp(en, extension) == 0)
000c5 4c 8b c6 mov r8, rsi
000c8 4c 2b c0 sub r8, rax
000cb 0f 1f 44 00 00 npad 5
$LL24@glfwExtens:
000d0 0f b6 10 movzx edx, BYTE PTR [rax]
000d3 42 0f b6 0c 00 movzx ecx, BYTE PTR [rax+r8]
000d8 2b d1 sub edx, ecx
000da 75 07 jne SHORT $LN25@glfwExtens
000dc 48 ff c0 inc rax
000df 85 c9 test ecx, ecx
000e1 75 ed jne SHORT $LL24@glfwExtens
$LN25@glfwExtens:
000e3 85 d2 test edx, edx
000e5 74 62 je SHORT $LN23@glfwExtens
; 711 :
; 712 : for (i = 0; i < count; i++)
000e7 ff c3 inc ebx
000e9 3b 5c 24 20 cmp ebx, DWORD PTR count$1[rsp]
000ed 7c c4 jl SHORT $LL4@glfwExtens
$LN13@glfwExtens:
; 742 : }
; 743 :
; 744 : // Check if extension is in the platform-specific string
; 745 : return window->context.extensionSupported(extension);
000ef 48 8b ce mov rcx, rsi
000f2 ff 97 68 02 00
00 call QWORD PTR [rdi+616]
$LN37@glfwExtens:
000f8 48 8b 5c 24 48 mov rbx, QWORD PTR [rsp+72]
$LN36@glfwExtens:
000fd 48 8b 7c 24 50 mov rdi, QWORD PTR [rsp+80]
; 746 : }
00102 48 8b 4c 24 28 mov rcx, QWORD PTR __$ArrayPad$[rsp]
00107 48 33 cc xor rcx, rsp
0010a e8 00 00 00 00 call __security_check_cookie
0010f 48 83 c4 30 add rsp, 48 ; 00000030H
00113 5e pop rsi
00114 c3 ret 0
$LN8@glfwExtens:
; 724 : return GLFW_TRUE;
; 725 : }
; 726 : }
; 727 : else
; 728 : {
; 729 : // Check if extension is in the old style OpenGL extensions string
; 730 :
; 731 : const char* extensions = (const char*)
00115 b9 03 1f 00 00 mov ecx, 7939 ; 00001f03H
0011a ff 90 48 02 00
00 call QWORD PTR [rax+584]
; 732 : window->context.GetString(GL_EXTENSIONS);
; 733 : if (!extensions)
00120 48 85 c0 test rax, rax
00123 75 15 jne SHORT $LN12@glfwExtens
$LN18@glfwExtens:
; 734 : {
; 735 : _glfwInputError(GLFW_PLATFORM_ERROR,
00125 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CF@KMMHNOMI@Extension?5string?5retrieval?5is?5b@
0012c b9 08 00 01 00 mov ecx, 65544 ; 00010008H
00131 e8 00 00 00 00 call _glfwInputError
; 736 : "Extension string retrieval is broken");
; 737 : return GLFW_FALSE;
00136 33 c0 xor eax, eax
00138 eb be jmp SHORT $LN37@glfwExtens
$LN12@glfwExtens:
; 738 : }
; 739 :
; 740 : if (_glfwStringInExtensionString(extension, extensions))
0013a 48 8b d0 mov rdx, rax
0013d 48 8b ce mov rcx, rsi
00140 e8 00 00 00 00 call _glfwStringInExtensionString
00145 85 c0 test eax, eax
00147 74 a6 je SHORT $LN13@glfwExtens
$LN23@glfwExtens:
; 741 : return GLFW_TRUE;
00149 b8 01 00 00 00 mov eax, 1
0014e eb a8 jmp SHORT $LN37@glfwExtens
glfwExtensionSupported ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; COMDAT glfwGetProcAddress
_TEXT SEGMENT
procname$ = 48
glfwGetProcAddress PROC ; COMDAT
; 749 : {
$LN10:
00000 40 53 push rbx
00002 48 83 ec 20 sub rsp, 32 ; 00000020H
; 750 : _GLFWwindow* window;
; 751 : assert(procname != NULL);
; 752 :
; 753 : _GLFW_REQUIRE_INIT_OR_RETURN(NULL);
00006 83 3d 00 00 00
00 00 cmp DWORD PTR _glfw, 0
0000d 48 8b d9 mov rbx, rcx
00010 75 14 jne SHORT $LN2@glfwGetPro
00012 33 d2 xor edx, edx
00014 b9 01 00 01 00 mov ecx, 65537 ; 00010001H
00019 e8 00 00 00 00 call _glfwInputError
0001e 33 c0 xor eax, eax
; 764 : }
00020 48 83 c4 20 add rsp, 32 ; 00000020H
00024 5b pop rbx
00025 c3 ret 0
$LN2@glfwGetPro:
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_thread.c
; 66 : return TlsGetValue(tls->win32.index);
00026 8b 0d a8 19 00
00 mov ecx, DWORD PTR _glfw+6568
0002c ff 15 00 00 00
00 call QWORD PTR __imp_TlsGetValue
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\context.c
; 756 : if (!window)
00032 48 85 c0 test rax, rax
00035 75 19 jne SHORT $LN3@glfwGetPro
; 757 : {
; 758 : _glfwInputError(GLFW_NO_CURRENT_CONTEXT,
00037 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0EH@LGPPFAO@Cannot?5query?5entry?5point?5withou@
0003e b9 02 00 01 00 mov ecx, 65538 ; 00010002H
00043 e8 00 00 00 00 call _glfwInputError
; 759 : "Cannot query entry point without a current OpenGL or OpenGL ES context");
; 760 : return NULL;
00048 33 c0 xor eax, eax
; 764 : }
0004a 48 83 c4 20 add rsp, 32 ; 00000020H
0004e 5b pop rbx
0004f c3 ret 0
$LN3@glfwGetPro:
; 761 : }
; 762 :
; 763 : return window->context.getProcAddress(procname);
00050 48 8b cb mov rcx, rbx
; 764 : }
00053 48 83 c4 20 add rsp, 32 ; 00000020H
00057 5b pop rbx
; 761 : }
; 762 :
; 763 : return window->context.getProcAddress(procname);
00058 48 ff a0 70 02
00 00 rex_jmp QWORD PTR [rax+624]
glfwGetProcAddress ENDP
_TEXT ENDS
END