3265 lines
100 KiB
Plaintext
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
|