[IMPROVE] open GL native probes added
authorVitaliy Cherepanov <v.cherepanov@samsung.com>
Fri, 6 Dec 2013 11:49:20 +0000 (15:49 +0400)
committerVitaliy Cherepanov <v.cherepanov@samsung.com>
Mon, 9 Dec 2013 14:27:24 +0000 (18:27 +0400)
Change-Id: I5f5febd1c2533532f31f0d7dce2bd8ffe518afab
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
Makefile
helper/dahelper.c
include/api_id_mapping.h
include/dahelper.h
probe_graphics/da_gles20.cpp [deleted file]
probe_graphics/da_gles20.h
probe_graphics/da_gles20_native.cpp [new file with mode: 0644]
probe_graphics/da_gles20_tizen.cpp [new file with mode: 0644]
scripts/api_names.txt

index 4c36e5eb0a9926162f041646547901f71cdee927..440eec8703ab616ee9c6e5201279bd8538b9380c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -109,7 +109,8 @@ TIZEN_SRCS =        $(COMMON_SRCS)                          \
                ./probe_ui/tizen_scenemanager.cpp       \
                ./probe_ui/tizen_frameani.cpp           \
                ./probe_ui/tizen_display.cpp            \
-               ./probe_graphics/da_gles20.cpp
+               ./probe_graphics/da_gles20_tizen.cpp            \
+               ./probe_graphics/da_gles20_native.cpp
 
 ## Totally brain-dead.
 ## FIXME: Rewrite this normally with eval.
@@ -122,7 +123,7 @@ CAPI_TARGET = da_probe_capi.so
 TIZEN_TARGET = da_probe_tizen.so
 DUMMY_TARGET = libdaprobe.so
 
-CPPFLAGS = $(INCLUDE_CPPFLAGS) -D_GNU_SOURCE
+CPPFLAGS = $(INCLUDE_CPPFLAGS) -D_GNU_SOURCE -DSELF_LIB_NAME="\"/$(INSTALLDIR)/$(TIZEN_TARGET)\""
 CFLAGS = $(WARN_CFLAGS) -fPIC
 CXXFLAGS = $(WARN_CFLAGS) -fPIC
 
index fafe10ad31f06324e2f893a5247574a99cb46334..ab5a75e3297c673585071c0cd26a4510ac2efaeb 100755 (executable)
 #include "dahelper.h"
 
 const char *lib_string[NUM_ORIGINAL_LIBRARY] = {
-       "libc.so.6",
-       "libpthread.so.0",
-       "libelementary.so",
-       "libosp-uifw.so",
-       "libosp-appfw.so",
-       "libosp-web.so",
-       "libecore_input_evas.so.1",
-       "libdaemon.so.0",
-       "libcapi-appfw-application.so.0",
-       "libGLESv2.so",
-       "libEGL.so",
-       "libosp-net.so"
+       "libc.so.6",                            //0
+       "libpthread.so.0",                      //1
+       "libelementary.so",                     //2
+       "libosp-uifw.so",                       //3
+       "libosp-appfw.so",                      //4
+       "libosp-web.so",                        //5
+       "libecore_input_evas.so.1",             //6
+       "libdaemon.so.0",                       //7
+       "libcapi-appfw-application.so.0",       //8
+       "libGLESv2.so",                         //9
+       "libEGL.so",                            //10
+       "libosp-net.so",                        //11
+       SELF_LIB_NAME                           //12
 };
 void *lib_handle[NUM_ORIGINAL_LIBRARY];
 
index 9011dffa95f5f77ac3dd7980441cf26db65daf41..fe03c53e1a7cad61319806f2b0a158442359f675 100644 (file)
@@ -550,80 +550,81 @@ extern "C"{
 
 #define API_ID__SglSwapBuffers                                                                                                                  516 // _SglSwapBuffers
 #define API_ID_eglSwapBuffers                                                                                                                   517 // eglSwapBuffers
-
-#define API_ID__ZN5Tizen3Net7Sockets6Socket10SetSockOptENS1_17NetSocketOptLevelENS1_16NetSocketOptNameEi                                        518 // _ZN5Tizen3Net7Sockets6Socket10SetSockOptENS1_17NetSocketOptLevelENS1_16NetSocketOptNameEi###Socket::SetSockOpt
-#define API_ID__ZN5Tizen3Net7Sockets6Socket10SetSockOptENS1_17NetSocketOptLevelENS1_16NetSocketOptNameERKNS1_12LingerOptionE                    519 // _ZN5Tizen3Net7Sockets6Socket10SetSockOptENS1_17NetSocketOptLevelENS1_16NetSocketOptNameERKNS1_12LingerOptionE###Socket::SetSockOpt
-#define API_ID__ZN5Tizen3Net7Sockets6Socket17AddSocketListenerERNS1_20ISocketEventListenerE                                                     520 // _ZN5Tizen3Net7Sockets6Socket17AddSocketListenerERNS1_20ISocketEventListenerE###Socket::AddSocketListener
-#define API_ID__ZN5Tizen3Net7Sockets6Socket20RemoveSocketListenerERNS1_20ISocketEventListenerE                                                  521 // _ZN5Tizen3Net7Sockets6Socket20RemoveSocketListenerERNS1_20ISocketEventListenerE###Socket::RemoveSocketListener
-#define API_ID__ZN5Tizen3Net7Sockets6Socket21AsyncSelectByListenerEm                                                                            522 // _ZN5Tizen3Net7Sockets6Socket21AsyncSelectByListenerEm###Socket::AsyncSelectByListener
-#define API_ID__ZN5Tizen3Net7Sockets6Socket4BindERKNS0_11NetEndPointE                                                                           523 // _ZN5Tizen3Net7Sockets6Socket4BindERKNS0_11NetEndPointE###Socket::Bind
-#define API_ID__ZN5Tizen3Net7Sockets6Socket4SendERNS_4Base10ByteBufferE                                                                         524 // _ZN5Tizen3Net7Sockets6Socket4SendERNS_4Base10ByteBufferE###Socket::Send
-#define API_ID__ZN5Tizen3Net7Sockets6Socket5CloseEv                                                                                             525 // _ZN5Tizen3Net7Sockets6Socket5CloseEv###Socket::Close
-#define API_ID__ZN5Tizen3Net7Sockets6Socket6ListenEi                                                                                            526 // _ZN5Tizen3Net7Sockets6Socket6ListenEi###Socket::Listen
-#define API_ID__ZN5Tizen3Net7Sockets6Socket6SendToEPviRKNS0_11NetEndPointERi                                                                    527 // _ZN5Tizen3Net7Sockets6Socket6SendToEPviRKNS0_11NetEndPointERi###Socket::SendTo
-#define API_ID__ZN5Tizen3Net7Sockets6Socket6SendToERNS_4Base10ByteBufferERKNS0_11NetEndPointE                                                   528 // _ZN5Tizen3Net7Sockets6Socket6SendToERNS_4Base10ByteBufferERKNS0_11NetEndPointE###Socket::SendTo
-#define API_ID__ZN5Tizen3Net7Sockets6Socket7ConnectERKNS0_11NetEndPointE                                                                        529 // _ZN5Tizen3Net7Sockets6Socket7ConnectERKNS0_11NetEndPointE###Socket::Connect
-#define API_ID__ZN5Tizen3Net7Sockets6Socket9ConstructENS1_22NetSocketAddressFamilyENS1_13NetSocketTypeENS1_17NetSocketProtocolE                 530 // _ZN5Tizen3Net7Sockets6Socket9ConstructENS1_22NetSocketAddressFamilyENS1_13NetSocketTypeENS1_17NetSocketProtocolE###Socket::Construct
-#define API_ID__ZN5Tizen3Net7Sockets6Socket9ConstructERKNS0_13NetConnectionENS1_22NetSocketAddressFamilyENS1_13NetSocketTypeENS1_17NetSocketProtocolE 531 // _ZN5Tizen3Net7Sockets6Socket9ConstructERKNS0_13NetConnectionENS1_22NetSocketAddressFamilyENS1_13NetSocketTypeENS1_17NetSocketProtocolE###Socket::Construct
-#define API_ID__ZNK5Tizen3Net7Sockets6Socket10GetSockOptENS1_17NetSocketOptLevelENS1_16NetSocketOptNameERi                                      532 // _ZNK5Tizen3Net7Sockets6Socket10GetSockOptENS1_17NetSocketOptLevelENS1_16NetSocketOptNameERi###Socket::GetSockOpt
-#define API_ID__ZNK5Tizen3Net7Sockets6Socket10GetSockOptENS1_17NetSocketOptLevelENS1_16NetSocketOptNameERNS1_12LingerOptionE                    533 // _ZNK5Tizen3Net7Sockets6Socket10GetSockOptENS1_17NetSocketOptLevelENS1_16NetSocketOptNameERNS1_12LingerOptionE###Socket::GetSockOpt
-#define API_ID__ZNK5Tizen3Net7Sockets6Socket11ReceiveFromEPviRNS0_11NetEndPointERi                                                              534 // _ZNK5Tizen3Net7Sockets6Socket11ReceiveFromEPviRNS0_11NetEndPointERi###Socket::Receive/Socket::ReceiveFrom
-#define API_ID__ZNK5Tizen3Net7Sockets6Socket11ReceiveFromERNS_4Base10ByteBufferERNS0_11NetEndPointE                                             535 // _ZNK5Tizen3Net7Sockets6Socket11ReceiveFromERNS_4Base10ByteBufferERNS0_11NetEndPointE###Socket::ReceiveFrom
-#define API_ID__ZNK5Tizen3Net7Sockets6Socket5IoctlENS1_17NetSocketIoctlCmdERm                                                                   536 // _ZNK5Tizen3Net7Sockets6Socket5IoctlENS1_17NetSocketIoctlCmdERm###Socket::Ioctl
-#define API_ID__ZNK5Tizen3Net7Sockets6Socket7AcceptNEv                                                                                          537 // _ZNK5Tizen3Net7Sockets6Socket7AcceptNEv###Socket::AcceptN
-#define API_ID__ZNK5Tizen3Net7Sockets6Socket7ReceiveERNS_4Base10ByteBufferE                                                                     538 // _ZNK5Tizen3Net7Sockets6Socket7ReceiveERNS_4Base10ByteBufferE###Socket::Receive
-#define API_ID__ZZN5Tizen3Net7Sockets6Socket4SendEPviRiE19__PRETTY_FUNCTION__                                                                   539 // _ZZN5Tizen3Net7Sockets6Socket4SendEPviRiE19__PRETTY_FUNCTION__###Socket::Send
-
-#define API_ID__ZN5Tizen3Net4Http11HttpRequest15SetCustomMethodERKNS_4Base6StringE                                                              540 // _ZN5Tizen3Net4Http11HttpRequest15SetCustomMethodERKNS_4Base6StringE###Http::HttpRequest::SetCustomMethod
-#define API_ID__ZN5Tizen3Net4Http11HttpRequest6SetUriERKNS_4Base6StringE                                                                        541 // _ZN5Tizen3Net4Http11HttpRequest6SetUriERKNS_4Base6StringE###Http::HttpRequest::SetAcceptEncoding/SetUri/SetVersion/
-#define API_ID__ZN5Tizen3Net4Http11HttpRequest9ReadBodyNEv                                                                                      542 // _ZN5Tizen3Net4Http11HttpRequest9ReadBodyNEv###Http::HttpRequest::ReadBodyN
-#define API_ID__ZN5Tizen3Net4Http11HttpRequest9SetCookieERKNS_4Base6StringE                                                                     543 // _ZN5Tizen3Net4Http11HttpRequest9SetCookieERKNS_4Base6StringE###Http::HttpRequest::SetCookie
-#define API_ID__ZN5Tizen3Net4Http11HttpRequest9SetEntityERNS1_11IHttpEntityE                                                                    544 // _ZN5Tizen3Net4Http11HttpRequest9SetEntityERNS1_11IHttpEntityE###Http::HttpRequest::SetEntity
-#define API_ID__ZN5Tizen3Net4Http11HttpRequest9SetMethodENS1_13NetHttpMethodE                                                                   545 // _ZN5Tizen3Net4Http11HttpRequest9SetMethodENS1_13NetHttpMethodE###Http::HttpRequest::SetMethod
-#define API_ID__ZN5Tizen3Net4Http11HttpRequest9WriteBodyERKNS_4Base10ByteBufferE                                                                546 // _ZN5Tizen3Net4Http11HttpRequest9WriteBodyERKNS_4Base10ByteBufferE###Http::HttpRequest::WriteBody
-#define API_ID__ZN5Tizen3Net4Http11HttpSession16CloseTransactionERNS1_15HttpTransactionE                                                        547 // _ZN5Tizen3Net4Http11HttpSession16CloseTransactionERNS1_15HttpTransactionE###Http::HttpSession::CloseTransaction
-#define API_ID__ZN5Tizen3Net4Http11HttpSession16OpenTransactionNERKNS1_18HttpAuthenticationE                                                    548 // _ZN5Tizen3Net4Http11HttpSession16OpenTransactionNERKNS1_18HttpAuthenticationE###Http::HttpSession::OpenTransactionN
-#define API_ID__ZN5Tizen3Net4Http11HttpSession16OpenTransactionNEv                                                                              549 // _ZN5Tizen3Net4Http11HttpSession16OpenTransactionNEv###Http::HttpSession::OpenTransactionN
-#define API_ID__ZN5Tizen3Net4Http11HttpSession17CancelTransactionERNS1_15HttpTransactionE                                                       550 // _ZN5Tizen3Net4Http11HttpSession17CancelTransactionERNS1_15HttpTransactionE###Http::HttpSession::CancelTransaction
-#define API_ID__ZN5Tizen3Net4Http11HttpSession20CloseAllTransactionsEv                                                                          551 // _ZN5Tizen3Net4Http11HttpSession20CloseAllTransactionsEv###Http::HttpSession::CloseAllTransactions
-#define API_ID__ZN5Tizen3Net4Http11HttpSession25SetAutoRedirectionEnabledEb                                                                     552 // _ZN5Tizen3Net4Http11HttpSession25SetAutoRedirectionEnabledEb###Http::HttpSession::SetAutoRedirectionEnabled
-#define API_ID__ZN5Tizen3Net4Http11HttpSession9ConstructENS1_18NetHttpSessionModeEPKNS_4Base6StringERS6_PKNS1_10HttpHeaderENS1_17NetHttpCookieFlagE 553 // _ZN5Tizen3Net4Http11HttpSession9ConstructENS1_18NetHttpSessionModeEPKNS_4Base6StringERS6_PKNS1_10HttpHeaderENS1_17NetHttpCookieFlagE###Http::HttpSession::Construct
-#define API_ID__ZN5Tizen3Net4Http11HttpSession9ConstructERKNS0_13NetConnectionENS1_18NetHttpSessionModeEPKNS_4Base6StringERS9_PKNS1_10HttpHeaderENS1_17NetHttpCookieFlagE 554 // _ZN5Tizen3Net4Http11HttpSession9ConstructERKNS0_13NetConnectionENS1_18NetHttpSessionModeEPKNS_4Base6StringERS9_PKNS1_10HttpHeaderENS1_17NetHttpCookieFlagE###Http::HttpSession::Construct
-#define API_ID__ZN5Tizen3Net4Http12HttpResponse10SetVersionERKNS_4Base6StringE                                                                  555 // _ZN5Tizen3Net4Http12HttpResponse10SetVersionERKNS_4Base6StringE###Http::HttpResponse::SetVersion
-#define API_ID__ZN5Tizen3Net4Http12HttpResponse13SetStatusCodeENS1_17NetHttpStatusCodeE                                                         556 // _ZN5Tizen3Net4Http12HttpResponse13SetStatusCodeENS1_17NetHttpStatusCodeE###Http::HttpResponse::SetStatusCode
-#define API_ID__ZN5Tizen3Net4Http12HttpResponse13SetStatusTextERKNS_4Base6StringE                                                               557 // _ZN5Tizen3Net4Http12HttpResponse13SetStatusTextERKNS_4Base6StringE###Http::HttpResponse::SetStatusText
-#define API_ID__ZN5Tizen3Net4Http12HttpResponse17SetHttpStatusCodeEi                                                                            558 // _ZN5Tizen3Net4Http12HttpResponse17SetHttpStatusCodeEi###Http::HttpResponse::SetHttpStatusCode
-#define API_ID__ZN5Tizen3Net4Http12HttpResponse4ReadEiiRiS3_                                                                                    559 // _ZN5Tizen3Net4Http12HttpResponse4ReadEiiRiS3_###Http::HttpResponse::Read
-#define API_ID__ZN5Tizen3Net4Http12HttpResponse9ReadBodyNEv                                                                                     560 // _ZN5Tizen3Net4Http12HttpResponse9ReadBodyNEv###Http::HttpResponse::ReadBodyN
-#define API_ID__ZN5Tizen3Net4Http12HttpResponse9SetCookieEPNS1_10HttpHeaderE                                                                    561 // _ZN5Tizen3Net4Http12HttpResponse9SetCookieEPNS1_10HttpHeaderE###Http::HttpResponse::SetCookie
-#define API_ID__ZN5Tizen3Net4Http12HttpResponse9WriteBodyERKNS_4Base10ByteBufferE                                                               562 // _ZN5Tizen3Net4Http12HttpResponse9WriteBodyERKNS_4Base10ByteBufferE###Http::HttpResponse::WriteBody
-#define API_ID__ZN5Tizen3Net4Http15HttpTransaction10SetTimeoutEi                                                                                563 // _ZN5Tizen3Net4Http15HttpTransaction10SetTimeoutEi###Http::HttpTransaction::SetTimeout
-#define API_ID__ZN5Tizen3Net4Http15HttpTransaction13SetUserObjectEPKNS_4Base6ObjectE                                                            564 // _ZN5Tizen3Net4Http15HttpTransaction13SetUserObjectEPKNS_4Base6ObjectE###Http::HttpTransaction::SetUserObject
-#define API_ID__ZN5Tizen3Net4Http15HttpTransaction20SetClientCertificateEi                                                                      565 // _ZN5Tizen3Net4Http15HttpTransaction20SetClientCertificateEi###Http::HttpTransaction::SetClientCertificate
-#define API_ID__ZN5Tizen3Net4Http15HttpTransaction23SetHttpProgressListenerERNS1_26IHttpProgressEventListenerE                                  566 // _ZN5Tizen3Net4Http15HttpTransaction23SetHttpProgressListenerERNS1_26IHttpProgressEventListenerE###Http::HttpTransaction::SetHttpProgressListener
-#define API_ID__ZN5Tizen3Net4Http15HttpTransaction26AddHttpTransactionListenerERNS1_29IHttpTransactionEventListenerE                            567 // _ZN5Tizen3Net4Http15HttpTransaction26AddHttpTransactionListenerERNS1_29IHttpTransactionEventListenerE###Http::HttpTransaction::AddHttpTransactionListener
-#define API_ID__ZN5Tizen3Net4Http15HttpTransaction29EnableTransactionReadyToWriteEv                                                             568 // _ZN5Tizen3Net4Http15HttpTransaction29EnableTransactionReadyToWriteEv###Http::HttpTransaction::EnableTransactionReadyToWrite
-#define API_ID__ZN5Tizen3Net4Http15HttpTransaction29RemoveHttpTransactionListenerERNS1_29IHttpTransactionEventListenerE                         569 // _ZN5Tizen3Net4Http15HttpTransaction29RemoveHttpTransactionListenerERNS1_29IHttpTransactionEventListenerE###Http::HttpTransaction::RemoveHttpTransactionListener
-#define API_ID__ZN5Tizen3Net4Http15HttpTransaction32SetServerCertificateVerificationENS1_34NetHttpCertificateVerificationFlagE                  570 // _ZN5Tizen3Net4Http15HttpTransaction32SetServerCertificateVerificationENS1_34NetHttpCertificateVerificationFlagE###Http::HttpTransaction::SetServerCertificateVerification
-#define API_ID__ZN5Tizen3Net4Http15HttpTransaction5PauseEv                                                                                      571 // _ZN5Tizen3Net4Http15HttpTransaction5PauseEv###Http::HttpTransaction::Pause
-#define API_ID__ZN5Tizen3Net4Http15HttpTransaction6ResumeEv                                                                                     572 // _ZN5Tizen3Net4Http15HttpTransaction6ResumeEv###Http::HttpTransaction::Resume
-#define API_ID__ZN5Tizen3Net4Http15HttpTransaction6SubmitEv                                                                                     573 // _ZN5Tizen3Net4Http15HttpTransaction6SubmitEv###Http::HttpTransaction::Submit
-#define API_ID__ZNK5Tizen3Net4Http10HttpHeader13GetRawHeaderNEv                                                                                 574 // _ZNK5Tizen3Net4Http10HttpHeader13GetRawHeaderNEv###Http::HttpHeader::GetRawHeaderN
-#define API_ID__ZNK5Tizen3Net4Http11HttpRequest17GetAcceptEncodingEv                                                                            575 // _ZNK5Tizen3Net4Http11HttpRequest17GetAcceptEncodingEv###Http::HttpRequest::GetAcceptEncoding
-#define API_ID__ZNK5Tizen3Net4Http11HttpRequest9GetCookieEv                                                                                     576 // _ZNK5Tizen3Net4Http11HttpRequest9GetCookieEv###Http::HttpRequest::GetCookie
-#define API_ID__ZNK5Tizen3Net4Http11HttpRequest9GetHeaderEv                                                                                     577 // _ZNK5Tizen3Net4Http11HttpRequest9GetHeaderEv###Http::HttpRequest::GetHeader
-#define API_ID__ZNK5Tizen3Net4Http11HttpSession22GetMaxTransactionCountEv                                                                       578 // _ZNK5Tizen3Net4Http11HttpSession22GetMaxTransactionCountEv###Http::HttpSession::GetMaxTransactionCount
-#define API_ID__ZNK5Tizen3Net4Http11HttpSession23GetCookieStorageManagerEv                                                                      579 // _ZNK5Tizen3Net4Http11HttpSession23GetCookieStorageManagerEv###Http::HttpSession::GetCookieStorageManager
-#define API_ID__ZNK5Tizen3Net4Http11HttpSession24IsAutoRedirectionEnabledEv                                                                     580 // _ZNK5Tizen3Net4Http11HttpSession24IsAutoRedirectionEnabledEv###Http::HttpSession::IsAutoRedirectionEnabled
-#define API_ID__ZNK5Tizen3Net4Http11HttpSession25GetActiveTransactionCountEv                                                                    581 // _ZNK5Tizen3Net4Http11HttpSession25GetActiveTransactionCountEv###Http::HttpSession::GetActiveTransactionCount
-#define API_ID__ZNK5Tizen3Net4Http12HttpResponse10GetCookiesEv                                                                                  582 // _ZNK5Tizen3Net4Http12HttpResponse10GetCookiesEv###Http::HttpResponse::GetCookies
-#define API_ID__ZNK5Tizen3Net4Http12HttpResponse10GetVersionEv                                                                                  583 // _ZNK5Tizen3Net4Http12HttpResponse10GetVersionEv###Http::HttpResponse::GetVersion
-#define API_ID__ZNK5Tizen3Net4Http12HttpResponse13GetStatusTextEv                                                                               584 // _ZNK5Tizen3Net4Http12HttpResponse13GetStatusTextEv###Http::HttpResponse::GetStatusText
-#define API_ID__ZNK5Tizen3Net4Http12HttpResponse17GetHttpStatusCodeEv                                                                           585 // _ZNK5Tizen3Net4Http12HttpResponse17GetHttpStatusCodeEv###Http::HttpResponse::GetHttpStatusCode/GetStatusCode
-#define API_ID__ZNK5Tizen3Net4Http12HttpResponse9GetHeaderEv                                                                                    586 // _ZNK5Tizen3Net4Http12HttpResponse9GetHeaderEv###Http::HttpResponse::GetHeader
-#define API_ID__ZNK5Tizen3Net4Http15HttpTransaction10GetRequestEv                                                                               587 // _ZNK5Tizen3Net4Http15HttpTransaction10GetRequestEv###Http::HttpTransaction::GetRequest/OpenAuthenticationInfoN
-#define API_ID__ZNK5Tizen3Net4Http15HttpTransaction11GetResponseEv                                                                              588 // _ZNK5Tizen3Net4Http15HttpTransaction11GetResponseEv###Http::HttpTransaction::GetResponse
-#define API_ID__ZNK5Tizen3Net4Http15HttpTransaction13GetUserObjectEv                                                                            589 // _ZNK5Tizen3Net4Http15HttpTransaction13GetUserObjectEv###Http::HttpTransaction::GetUserObject
+#define API_ID_eglGetProcAddress                                                                                                                518 // eglGetProcAddress
+
+#define API_ID__ZN5Tizen3Net7Sockets6Socket10SetSockOptENS1_17NetSocketOptLevelENS1_16NetSocketOptNameEi                                        519 // _ZN5Tizen3Net7Sockets6Socket10SetSockOptENS1_17NetSocketOptLevelENS1_16NetSocketOptNameEi###Socket::SetSockOpt
+#define API_ID__ZN5Tizen3Net7Sockets6Socket10SetSockOptENS1_17NetSocketOptLevelENS1_16NetSocketOptNameERKNS1_12LingerOptionE                    520 // _ZN5Tizen3Net7Sockets6Socket10SetSockOptENS1_17NetSocketOptLevelENS1_16NetSocketOptNameERKNS1_12LingerOptionE###Socket::SetSockOpt
+#define API_ID__ZN5Tizen3Net7Sockets6Socket17AddSocketListenerERNS1_20ISocketEventListenerE                                                     521 // _ZN5Tizen3Net7Sockets6Socket17AddSocketListenerERNS1_20ISocketEventListenerE###Socket::AddSocketListener
+#define API_ID__ZN5Tizen3Net7Sockets6Socket20RemoveSocketListenerERNS1_20ISocketEventListenerE                                                  522 // _ZN5Tizen3Net7Sockets6Socket20RemoveSocketListenerERNS1_20ISocketEventListenerE###Socket::RemoveSocketListener
+#define API_ID__ZN5Tizen3Net7Sockets6Socket21AsyncSelectByListenerEm                                                                            523 // _ZN5Tizen3Net7Sockets6Socket21AsyncSelectByListenerEm###Socket::AsyncSelectByListener
+#define API_ID__ZN5Tizen3Net7Sockets6Socket4BindERKNS0_11NetEndPointE                                                                           524 // _ZN5Tizen3Net7Sockets6Socket4BindERKNS0_11NetEndPointE###Socket::Bind
+#define API_ID__ZN5Tizen3Net7Sockets6Socket4SendERNS_4Base10ByteBufferE                                                                         525 // _ZN5Tizen3Net7Sockets6Socket4SendERNS_4Base10ByteBufferE###Socket::Send
+#define API_ID__ZN5Tizen3Net7Sockets6Socket5CloseEv                                                                                             526 // _ZN5Tizen3Net7Sockets6Socket5CloseEv###Socket::Close
+#define API_ID__ZN5Tizen3Net7Sockets6Socket6ListenEi                                                                                            527 // _ZN5Tizen3Net7Sockets6Socket6ListenEi###Socket::Listen
+#define API_ID__ZN5Tizen3Net7Sockets6Socket6SendToEPviRKNS0_11NetEndPointERi                                                                    528 // _ZN5Tizen3Net7Sockets6Socket6SendToEPviRKNS0_11NetEndPointERi###Socket::SendTo
+#define API_ID__ZN5Tizen3Net7Sockets6Socket6SendToERNS_4Base10ByteBufferERKNS0_11NetEndPointE                                                   529 // _ZN5Tizen3Net7Sockets6Socket6SendToERNS_4Base10ByteBufferERKNS0_11NetEndPointE###Socket::SendTo
+#define API_ID__ZN5Tizen3Net7Sockets6Socket7ConnectERKNS0_11NetEndPointE                                                                        530 // _ZN5Tizen3Net7Sockets6Socket7ConnectERKNS0_11NetEndPointE###Socket::Connect
+#define API_ID__ZN5Tizen3Net7Sockets6Socket9ConstructENS1_22NetSocketAddressFamilyENS1_13NetSocketTypeENS1_17NetSocketProtocolE                 531 // _ZN5Tizen3Net7Sockets6Socket9ConstructENS1_22NetSocketAddressFamilyENS1_13NetSocketTypeENS1_17NetSocketProtocolE###Socket::Construct
+#define API_ID__ZN5Tizen3Net7Sockets6Socket9ConstructERKNS0_13NetConnectionENS1_22NetSocketAddressFamilyENS1_13NetSocketTypeENS1_17NetSocketProtocolE 532 // _ZN5Tizen3Net7Sockets6Socket9ConstructERKNS0_13NetConnectionENS1_22NetSocketAddressFamilyENS1_13NetSocketTypeENS1_17NetSocketProtocolE###Socket::Construct
+#define API_ID__ZNK5Tizen3Net7Sockets6Socket10GetSockOptENS1_17NetSocketOptLevelENS1_16NetSocketOptNameERi                                      533 // _ZNK5Tizen3Net7Sockets6Socket10GetSockOptENS1_17NetSocketOptLevelENS1_16NetSocketOptNameERi###Socket::GetSockOpt
+#define API_ID__ZNK5Tizen3Net7Sockets6Socket10GetSockOptENS1_17NetSocketOptLevelENS1_16NetSocketOptNameERNS1_12LingerOptionE                    534 // _ZNK5Tizen3Net7Sockets6Socket10GetSockOptENS1_17NetSocketOptLevelENS1_16NetSocketOptNameERNS1_12LingerOptionE###Socket::GetSockOpt
+#define API_ID__ZNK5Tizen3Net7Sockets6Socket11ReceiveFromEPviRNS0_11NetEndPointERi                                                              535 // _ZNK5Tizen3Net7Sockets6Socket11ReceiveFromEPviRNS0_11NetEndPointERi###Socket::Receive/Socket::ReceiveFrom
+#define API_ID__ZNK5Tizen3Net7Sockets6Socket11ReceiveFromERNS_4Base10ByteBufferERNS0_11NetEndPointE                                             536 // _ZNK5Tizen3Net7Sockets6Socket11ReceiveFromERNS_4Base10ByteBufferERNS0_11NetEndPointE###Socket::ReceiveFrom
+#define API_ID__ZNK5Tizen3Net7Sockets6Socket5IoctlENS1_17NetSocketIoctlCmdERm                                                                   537 // _ZNK5Tizen3Net7Sockets6Socket5IoctlENS1_17NetSocketIoctlCmdERm###Socket::Ioctl
+#define API_ID__ZNK5Tizen3Net7Sockets6Socket7AcceptNEv                                                                                          538 // _ZNK5Tizen3Net7Sockets6Socket7AcceptNEv###Socket::AcceptN
+#define API_ID__ZNK5Tizen3Net7Sockets6Socket7ReceiveERNS_4Base10ByteBufferE                                                                     539 // _ZNK5Tizen3Net7Sockets6Socket7ReceiveERNS_4Base10ByteBufferE###Socket::Receive
+#define API_ID__ZZN5Tizen3Net7Sockets6Socket4SendEPviRiE19__PRETTY_FUNCTION__                                                                   540 // _ZZN5Tizen3Net7Sockets6Socket4SendEPviRiE19__PRETTY_FUNCTION__###Socket::Send
+
+#define API_ID__ZN5Tizen3Net4Http11HttpRequest15SetCustomMethodERKNS_4Base6StringE                                                              541 // _ZN5Tizen3Net4Http11HttpRequest15SetCustomMethodERKNS_4Base6StringE###Http::HttpRequest::SetCustomMethod
+#define API_ID__ZN5Tizen3Net4Http11HttpRequest6SetUriERKNS_4Base6StringE                                                                        542 // _ZN5Tizen3Net4Http11HttpRequest6SetUriERKNS_4Base6StringE###Http::HttpRequest::SetAcceptEncoding/SetUri/SetVersion/
+#define API_ID__ZN5Tizen3Net4Http11HttpRequest9ReadBodyNEv                                                                                      543 // _ZN5Tizen3Net4Http11HttpRequest9ReadBodyNEv###Http::HttpRequest::ReadBodyN
+#define API_ID__ZN5Tizen3Net4Http11HttpRequest9SetCookieERKNS_4Base6StringE                                                                     544 // _ZN5Tizen3Net4Http11HttpRequest9SetCookieERKNS_4Base6StringE###Http::HttpRequest::SetCookie
+#define API_ID__ZN5Tizen3Net4Http11HttpRequest9SetEntityERNS1_11IHttpEntityE                                                                    545 // _ZN5Tizen3Net4Http11HttpRequest9SetEntityERNS1_11IHttpEntityE###Http::HttpRequest::SetEntity
+#define API_ID__ZN5Tizen3Net4Http11HttpRequest9SetMethodENS1_13NetHttpMethodE                                                                   546 // _ZN5Tizen3Net4Http11HttpRequest9SetMethodENS1_13NetHttpMethodE###Http::HttpRequest::SetMethod
+#define API_ID__ZN5Tizen3Net4Http11HttpRequest9WriteBodyERKNS_4Base10ByteBufferE                                                                547 // _ZN5Tizen3Net4Http11HttpRequest9WriteBodyERKNS_4Base10ByteBufferE###Http::HttpRequest::WriteBody
+#define API_ID__ZN5Tizen3Net4Http11HttpSession16CloseTransactionERNS1_15HttpTransactionE                                                        548 // _ZN5Tizen3Net4Http11HttpSession16CloseTransactionERNS1_15HttpTransactionE###Http::HttpSession::CloseTransaction
+#define API_ID__ZN5Tizen3Net4Http11HttpSession16OpenTransactionNERKNS1_18HttpAuthenticationE                                                    549 // _ZN5Tizen3Net4Http11HttpSession16OpenTransactionNERKNS1_18HttpAuthenticationE###Http::HttpSession::OpenTransactionN
+#define API_ID__ZN5Tizen3Net4Http11HttpSession16OpenTransactionNEv                                                                              550 // _ZN5Tizen3Net4Http11HttpSession16OpenTransactionNEv###Http::HttpSession::OpenTransactionN
+#define API_ID__ZN5Tizen3Net4Http11HttpSession17CancelTransactionERNS1_15HttpTransactionE                                                       551 // _ZN5Tizen3Net4Http11HttpSession17CancelTransactionERNS1_15HttpTransactionE###Http::HttpSession::CancelTransaction
+#define API_ID__ZN5Tizen3Net4Http11HttpSession20CloseAllTransactionsEv                                                                          552 // _ZN5Tizen3Net4Http11HttpSession20CloseAllTransactionsEv###Http::HttpSession::CloseAllTransactions
+#define API_ID__ZN5Tizen3Net4Http11HttpSession25SetAutoRedirectionEnabledEb                                                                     553 // _ZN5Tizen3Net4Http11HttpSession25SetAutoRedirectionEnabledEb###Http::HttpSession::SetAutoRedirectionEnabled
+#define API_ID__ZN5Tizen3Net4Http11HttpSession9ConstructENS1_18NetHttpSessionModeEPKNS_4Base6StringERS6_PKNS1_10HttpHeaderENS1_17NetHttpCookieFlagE 554 // _ZN5Tizen3Net4Http11HttpSession9ConstructENS1_18NetHttpSessionModeEPKNS_4Base6StringERS6_PKNS1_10HttpHeaderENS1_17NetHttpCookieFlagE###Http::HttpSession::Construct
+#define API_ID__ZN5Tizen3Net4Http11HttpSession9ConstructERKNS0_13NetConnectionENS1_18NetHttpSessionModeEPKNS_4Base6StringERS9_PKNS1_10HttpHeaderENS1_17NetHttpCookieFlagE 555 // _ZN5Tizen3Net4Http11HttpSession9ConstructERKNS0_13NetConnectionENS1_18NetHttpSessionModeEPKNS_4Base6StringERS9_PKNS1_10HttpHeaderENS1_17NetHttpCookieFlagE###Http::HttpSession::Construct
+#define API_ID__ZN5Tizen3Net4Http12HttpResponse10SetVersionERKNS_4Base6StringE                                                                  556 // _ZN5Tizen3Net4Http12HttpResponse10SetVersionERKNS_4Base6StringE###Http::HttpResponse::SetVersion
+#define API_ID__ZN5Tizen3Net4Http12HttpResponse13SetStatusCodeENS1_17NetHttpStatusCodeE                                                         557 // _ZN5Tizen3Net4Http12HttpResponse13SetStatusCodeENS1_17NetHttpStatusCodeE###Http::HttpResponse::SetStatusCode
+#define API_ID__ZN5Tizen3Net4Http12HttpResponse13SetStatusTextERKNS_4Base6StringE                                                               558 // _ZN5Tizen3Net4Http12HttpResponse13SetStatusTextERKNS_4Base6StringE###Http::HttpResponse::SetStatusText
+#define API_ID__ZN5Tizen3Net4Http12HttpResponse17SetHttpStatusCodeEi                                                                            559 // _ZN5Tizen3Net4Http12HttpResponse17SetHttpStatusCodeEi###Http::HttpResponse::SetHttpStatusCode
+#define API_ID__ZN5Tizen3Net4Http12HttpResponse4ReadEiiRiS3_                                                                                    560 // _ZN5Tizen3Net4Http12HttpResponse4ReadEiiRiS3_###Http::HttpResponse::Read
+#define API_ID__ZN5Tizen3Net4Http12HttpResponse9ReadBodyNEv                                                                                     561 // _ZN5Tizen3Net4Http12HttpResponse9ReadBodyNEv###Http::HttpResponse::ReadBodyN
+#define API_ID__ZN5Tizen3Net4Http12HttpResponse9SetCookieEPNS1_10HttpHeaderE                                                                    562 // _ZN5Tizen3Net4Http12HttpResponse9SetCookieEPNS1_10HttpHeaderE###Http::HttpResponse::SetCookie
+#define API_ID__ZN5Tizen3Net4Http12HttpResponse9WriteBodyERKNS_4Base10ByteBufferE                                                               563 // _ZN5Tizen3Net4Http12HttpResponse9WriteBodyERKNS_4Base10ByteBufferE###Http::HttpResponse::WriteBody
+#define API_ID__ZN5Tizen3Net4Http15HttpTransaction10SetTimeoutEi                                                                                564 // _ZN5Tizen3Net4Http15HttpTransaction10SetTimeoutEi###Http::HttpTransaction::SetTimeout
+#define API_ID__ZN5Tizen3Net4Http15HttpTransaction13SetUserObjectEPKNS_4Base6ObjectE                                                            565 // _ZN5Tizen3Net4Http15HttpTransaction13SetUserObjectEPKNS_4Base6ObjectE###Http::HttpTransaction::SetUserObject
+#define API_ID__ZN5Tizen3Net4Http15HttpTransaction20SetClientCertificateEi                                                                      566 // _ZN5Tizen3Net4Http15HttpTransaction20SetClientCertificateEi###Http::HttpTransaction::SetClientCertificate
+#define API_ID__ZN5Tizen3Net4Http15HttpTransaction23SetHttpProgressListenerERNS1_26IHttpProgressEventListenerE                                  567 // _ZN5Tizen3Net4Http15HttpTransaction23SetHttpProgressListenerERNS1_26IHttpProgressEventListenerE###Http::HttpTransaction::SetHttpProgressListener
+#define API_ID__ZN5Tizen3Net4Http15HttpTransaction26AddHttpTransactionListenerERNS1_29IHttpTransactionEventListenerE                            568 // _ZN5Tizen3Net4Http15HttpTransaction26AddHttpTransactionListenerERNS1_29IHttpTransactionEventListenerE###Http::HttpTransaction::AddHttpTransactionListener
+#define API_ID__ZN5Tizen3Net4Http15HttpTransaction29EnableTransactionReadyToWriteEv                                                             569 // _ZN5Tizen3Net4Http15HttpTransaction29EnableTransactionReadyToWriteEv###Http::HttpTransaction::EnableTransactionReadyToWrite
+#define API_ID__ZN5Tizen3Net4Http15HttpTransaction29RemoveHttpTransactionListenerERNS1_29IHttpTransactionEventListenerE                         570 // _ZN5Tizen3Net4Http15HttpTransaction29RemoveHttpTransactionListenerERNS1_29IHttpTransactionEventListenerE###Http::HttpTransaction::RemoveHttpTransactionListener
+#define API_ID__ZN5Tizen3Net4Http15HttpTransaction32SetServerCertificateVerificationENS1_34NetHttpCertificateVerificationFlagE                  571 // _ZN5Tizen3Net4Http15HttpTransaction32SetServerCertificateVerificationENS1_34NetHttpCertificateVerificationFlagE###Http::HttpTransaction::SetServerCertificateVerification
+#define API_ID__ZN5Tizen3Net4Http15HttpTransaction5PauseEv                                                                                      572 // _ZN5Tizen3Net4Http15HttpTransaction5PauseEv###Http::HttpTransaction::Pause
+#define API_ID__ZN5Tizen3Net4Http15HttpTransaction6ResumeEv                                                                                     573 // _ZN5Tizen3Net4Http15HttpTransaction6ResumeEv###Http::HttpTransaction::Resume
+#define API_ID__ZN5Tizen3Net4Http15HttpTransaction6SubmitEv                                                                                     574 // _ZN5Tizen3Net4Http15HttpTransaction6SubmitEv###Http::HttpTransaction::Submit
+#define API_ID__ZNK5Tizen3Net4Http10HttpHeader13GetRawHeaderNEv                                                                                 575 // _ZNK5Tizen3Net4Http10HttpHeader13GetRawHeaderNEv###Http::HttpHeader::GetRawHeaderN
+#define API_ID__ZNK5Tizen3Net4Http11HttpRequest17GetAcceptEncodingEv                                                                            576 // _ZNK5Tizen3Net4Http11HttpRequest17GetAcceptEncodingEv###Http::HttpRequest::GetAcceptEncoding
+#define API_ID__ZNK5Tizen3Net4Http11HttpRequest9GetCookieEv                                                                                     577 // _ZNK5Tizen3Net4Http11HttpRequest9GetCookieEv###Http::HttpRequest::GetCookie
+#define API_ID__ZNK5Tizen3Net4Http11HttpRequest9GetHeaderEv                                                                                     578 // _ZNK5Tizen3Net4Http11HttpRequest9GetHeaderEv###Http::HttpRequest::GetHeader
+#define API_ID__ZNK5Tizen3Net4Http11HttpSession22GetMaxTransactionCountEv                                                                       579 // _ZNK5Tizen3Net4Http11HttpSession22GetMaxTransactionCountEv###Http::HttpSession::GetMaxTransactionCount
+#define API_ID__ZNK5Tizen3Net4Http11HttpSession23GetCookieStorageManagerEv                                                                      580 // _ZNK5Tizen3Net4Http11HttpSession23GetCookieStorageManagerEv###Http::HttpSession::GetCookieStorageManager
+#define API_ID__ZNK5Tizen3Net4Http11HttpSession24IsAutoRedirectionEnabledEv                                                                     581 // _ZNK5Tizen3Net4Http11HttpSession24IsAutoRedirectionEnabledEv###Http::HttpSession::IsAutoRedirectionEnabled
+#define API_ID__ZNK5Tizen3Net4Http11HttpSession25GetActiveTransactionCountEv                                                                    582 // _ZNK5Tizen3Net4Http11HttpSession25GetActiveTransactionCountEv###Http::HttpSession::GetActiveTransactionCount
+#define API_ID__ZNK5Tizen3Net4Http12HttpResponse10GetCookiesEv                                                                                  583 // _ZNK5Tizen3Net4Http12HttpResponse10GetCookiesEv###Http::HttpResponse::GetCookies
+#define API_ID__ZNK5Tizen3Net4Http12HttpResponse10GetVersionEv                                                                                  584 // _ZNK5Tizen3Net4Http12HttpResponse10GetVersionEv###Http::HttpResponse::GetVersion
+#define API_ID__ZNK5Tizen3Net4Http12HttpResponse13GetStatusTextEv                                                                               585 // _ZNK5Tizen3Net4Http12HttpResponse13GetStatusTextEv###Http::HttpResponse::GetStatusText
+#define API_ID__ZNK5Tizen3Net4Http12HttpResponse17GetHttpStatusCodeEv                                                                           586 // _ZNK5Tizen3Net4Http12HttpResponse17GetHttpStatusCodeEv###Http::HttpResponse::GetHttpStatusCode/GetStatusCode
+#define API_ID__ZNK5Tizen3Net4Http12HttpResponse9GetHeaderEv                                                                                    587 // _ZNK5Tizen3Net4Http12HttpResponse9GetHeaderEv###Http::HttpResponse::GetHeader
+#define API_ID__ZNK5Tizen3Net4Http15HttpTransaction10GetRequestEv                                                                               588 // _ZNK5Tizen3Net4Http15HttpTransaction10GetRequestEv###Http::HttpTransaction::GetRequest/OpenAuthenticationInfoN
+#define API_ID__ZNK5Tizen3Net4Http15HttpTransaction11GetResponseEv                                                                              589 // _ZNK5Tizen3Net4Http15HttpTransaction11GetResponseEv###Http::HttpTransaction::GetResponse
+#define API_ID__ZNK5Tizen3Net4Http15HttpTransaction13GetUserObjectEv                                                                            590 // _ZNK5Tizen3Net4Http15HttpTransaction13GetUserObjectEv###Http::HttpTransaction::GetUserObject
 
 
 #ifdef __cplusplus
index 2a4f95c2c31f191b0d156606871105beccd648ff..721a4033a6686d0e14e8a76246ad50565b6174ca 100755 (executable)
@@ -136,7 +136,7 @@ extern "C"{
                }                                                                                                               \
        } while(0)
 
-#define        NUM_ORIGINAL_LIBRARY    12
+#define        NUM_ORIGINAL_LIBRARY    13
 
 typedef enum
 {
@@ -151,7 +151,8 @@ typedef enum
        LIBCAPI_APPFW_APPLICATION = 8,
        LIBGLES20 = 9,
        LIBEGL = 10,
-       LIBOSP_NET = 11
+       LIBOSP_NET = 11,
+       LIBSELF = 12
 } ORIGINAL_LIBRARY;
 
 extern const char *lib_string[NUM_ORIGINAL_LIBRARY];
diff --git a/probe_graphics/da_gles20.cpp b/probe_graphics/da_gles20.cpp
deleted file mode 100644 (file)
index 6ae5a24..0000000
+++ /dev/null
@@ -1,1637 +0,0 @@
-/*
- *  DA probe
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact:
- *
- * Sanghyun Lee <sanghyunnim.lee@samsung.com>
- * Juyoung Kim <j0.kim@samsung.com>
- * Vitaliy Cherepanov <v.cherepanov@samsung.com>
- *
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the
- * Free Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- * License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc., 51
- * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Contributors:
- * - S-Core Co., Ltd
- *
- */
-#include "da_gles20.h"
-#include "binproto.h"
-
-static enum DaOptions _sopt = OPT_GLES;
-
-// ==================================================================
-// A 2
-// ==================================================================
-
-void glActiveTexture(GLenum texture) {
-       typedef void (*methodType)(GLenum);
-       BEFORE(glActiveTexture);
-       glActiveTexturep(texture);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x",
-             (uint64_t)(texture));
-}
-
-void glAttachShader(GLuint program, GLuint shader) {
-       typedef void (*methodType)(GLuint, GLuint);
-       BEFORE(glAttachShader);
-       glAttachShaderp(program, shader);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dd",
-                       program, shader);
-}
-
-// ==================================================================
-// B 12
-// ==================================================================
-
-void glBindAttribLocation(GLuint program, GLuint index, const char *name) {
-       typedef void (*methodType)(GLuint, GLuint, const char *);
-       BEFORE(glBindAttribLocation);
-       glBindAttribLocationp(program, index, name);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dds",
-                       program, index, name);
-}
-
-void glBindBuffer(GLenum target, GLuint buffer) {
-       typedef void (*methodType)(GLenum, GLuint);
-       BEFORE(glBindBuffer);
-       glBindBufferp(target, buffer);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xd",
-             (uint64_t)(target), buffer);
-}
-
-void glBindFramebuffer(GLenum target, GLuint framebuffer) {
-       typedef void (*methodType)(GLenum, GLuint);
-       BEFORE(glBindFramebuffer);
-       glBindFramebufferp(target, framebuffer);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xd",
-             (uint64_t)(target), framebuffer);
-}
-
-void glBindRenderbuffer(GLenum target, GLuint renderbuffer) {
-       typedef void (*methodType)(GLenum, GLuint);
-       BEFORE(glBindRenderbuffer);
-       glBindRenderbufferp(target, renderbuffer);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xd",
-             (uint64_t)(target), renderbuffer);
-}
-
-void glBindTexture(GLenum target, GLuint texture) {
-       typedef void (*methodType)(GLenum, GLuint);
-       BEFORE(glBindTexture);
-       glBindTexturep(target, texture);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xd",
-             (uint64_t)(target), texture);
-}
-
-void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) {
-       typedef void (*methodType)(GLclampf, GLclampf, GLclampf, GLclampf);
-       BEFORE(glBlendColor);
-       glBlendColorp(red, green, blue, alpha);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ffff",
-                       red, green, blue, alpha);
-}
-
-void glBlendEquation(GLenum mode) {
-       typedef void (*methodType)(GLenum);
-       BEFORE(glBlendEquation);
-       glBlendEquationp(mode);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x",
-             (uint64_t)(mode));
-}
-
-void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) {
-       typedef void (*methodType)(GLenum, GLenum);
-       BEFORE(glBlendEquationSeparate);
-       glBlendEquationSeparatep(modeRGB, modeAlpha);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xx",
-             (uint64_t)(modeRGB), (uint64_t)(modeAlpha));
-}
-
-void glBlendFunc(GLenum sfactor, GLenum dfactor) {
-       typedef void (*methodType)(GLenum, GLenum);
-       BEFORE(glBlendFunc);
-       glBlendFuncp(sfactor, dfactor);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xx",
-             (uint64_t)(sfactor), (uint64_t)(dfactor));
-}
-
-void glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha,
-               GLenum dstAlpha) {
-       typedef void (*methodType)(GLenum, GLenum, GLenum, GLenum);
-       BEFORE(glBlendFuncSeparate);
-       glBlendFuncSeparatep(srcRGB, dstRGB, srcAlpha, dstAlpha);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxxx",
-             (uint64_t)(srcRGB), (uint64_t)(dstRGB),
-             (uint64_t)(srcAlpha), (uint64_t)(dstAlpha));
-}
-
-void glBufferData(GLenum target, GLsizeiptr size, const GLvoid * data,
-               GLenum usage) {
-       typedef void (*methodType)(GLenum, GLsizeiptr, const GLvoid *, GLenum);
-       BEFORE(glBufferData);
-       glBufferDatap(target, size, data, usage);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxpx",
-             (uint64_t)(target), (uint64_t)(size),
-             voidp_to_uint64(data), (uint64_t)(usage));
-}
-
-void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size,
-               const GLvoid * data) {
-       typedef void (*methodType)(GLenum, GLintptr, GLsizeiptr, const GLvoid *);
-       BEFORE(glBufferSubData);
-       glBufferSubDatap(target, offset, size, data);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxxp",
-             (uint64_t)(target), (uint64_t)(offset),
-             (uint64_t)(size), voidp_to_uint64(data));
-}
-
-// ==================================================================
-// C 14
-// ==================================================================
-
-GLenum glCheckFramebufferStatus(GLenum target) {
-       typedef GLenum (*methodType)(GLenum);
-       BEFORE(glCheckFramebufferStatus);
-       GLenum ret = glCheckFramebufferStatusp(target);
-       error = glGetError();
-       AFTER('d', ret, APITYPE_CONTEXT, "", "x",
-             (uint64_t)(target));
-
-       return ret;
-}
-
-void glClear(GLbitfield mask) {
-       typedef void (*methodType)(GLbitfield);
-       BEFORE(glClear);
-       glClearp(mask);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x",
-             (uint64_t)(mask));
-}
-
-void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) {
-       typedef void (*methodType)(GLclampf, GLclampf, GLclampf, GLclampf);
-       BEFORE(glClearColor);
-       glClearColorp(red, green, blue, alpha);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ffff",
-                       red, green, blue, alpha);
-}
-
-void glClearDepthf(GLclampf depth) {
-       typedef void (*methodType)(GLclampf);
-       BEFORE(glClearDepthf);
-       glClearDepthfp(depth);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "f", depth);
-}
-
-void glClearStencil(GLint s) {
-       typedef void (*methodType)(GLint);
-       BEFORE(glClearStencil);
-       glClearStencilp(s);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "d", s);
-}
-
-void glColorMask(GLboolean red, GLboolean green, GLboolean blue,
-               GLboolean alpha) {
-       typedef void (*methodType)(GLboolean, GLboolean, GLboolean, GLboolean);
-       BEFORE(glColorMask);
-       glColorMaskp(red, green, blue, alpha);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dddd",
-                       red, green, blue, alpha);
-}
-
-void glCompileShader(GLuint shader) {
-       typedef void (*methodType)(GLuint);
-       BEFORE(glCompileShader);
-       glCompileShaderp(shader);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(shader));
-}
-
-void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat,
-               GLsizei width, GLsizei height, GLint border, GLsizei imageSize,
-               const GLvoid * data) {
-       typedef void (*methodType)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint,
-                       GLsizei, const GLvoid *);
-       BEFORE(glCompressedTexImage2D);
-       glCompressedTexImage2Dp(target, level, internalformat, width, height,
-                       border, imageSize, data);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xdxddddp",
-             (uint64_t)(target), level,
-             (uint64_t)(internalformat), width, height, border, imageSize,
-             voidp_to_uint64(data));
-}
-
-void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset,
-               GLint yoffset, GLsizei width, GLsizei height, GLenum format,
-               GLsizei imageSize, const GLvoid * data) {
-       typedef void (*methodType)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei,
-                       GLenum, GLsizei, const GLvoid *);
-       BEFORE(glCompressedTexSubImage2D);
-       glCompressedTexSubImage2Dp(target, level, xoffset, yoffset, width, height,
-                       format, imageSize, data);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xdddddxdp",
-             (uint64_t)(target), level, xoffset, yoffset, width, height,
-             (uint64_t)(format), imageSize, voidp_to_uint64(data));
-}
-
-void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat,
-               GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {
-       typedef void (*methodType)(GLenum, GLint, GLenum, GLint, GLint, GLsizei,
-                       GLsizei, GLint);
-       BEFORE(glCopyTexImage2D);
-       glCopyTexImage2Dp(target, level, internalformat, x, y, width, height,
-                       border);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xdxddddd",
-             (uint64_t)(target), level,
-             (uint64_t)(internalformat), x, y, width, height, border);
-}
-
-void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset,
-               GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
-       typedef void (*methodType)(GLenum, GLint, GLint, GLint, GLint, GLint,
-                       GLsizei, GLsizei);
-       BEFORE(glCopyTexSubImage2D);
-       glCopyTexSubImage2Dp(target, level, xoffset, yoffset, x, y, width, height);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xddddddd",
-             (uint64_t)(target), level, xoffset, yoffset, x, y, width,
-             height);
-}
-
-GLuint glCreateProgram(void) {
-       typedef GLuint (*methodType)(void);
-       BEFORE(glCreateProgram);
-       GLuint ret = glCreateProgramp();
-       error = glGetError();
-       AFTER_NO_PARAM('d', ret, APITYPE_CONTEXT, "");
-
-       return ret;
-}
-
-GLuint glCreateShader(GLenum shaderType) {
-       typedef GLuint (*methodType)(GLenum);
-       BEFORE(glCreateShader);
-       GLuint ret = glCreateShaderp(shaderType);
-       error = glGetError();
-       AFTER('d', ret, APITYPE_CONTEXT, "", "x", (uint64_t)(shaderType));
-
-       return ret;
-}
-
-void glCullFace(GLenum mode) {
-       typedef void (*methodType)(GLenum);
-       BEFORE(glCullFace);
-       glCullFacep(mode);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(mode));
-}
-
-// ==================================================================
-// D 14
-// ==================================================================
-
-void glDeleteBuffers(GLsizei n, const GLuint * buffers) {
-       typedef void (*methodType)(GLsizei, const GLuint *);
-       BEFORE(glDeleteBuffers);
-       glDeleteBuffersp(n, buffers);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dp",
-             n, voidp_to_uint64(buffers));
-}
-
-void glDeleteFramebuffers(GLsizei n, const GLuint * framebuffers) {
-       typedef void (*methodType)(GLsizei, const GLuint *);
-       BEFORE(glDeleteFramebuffers);
-       glDeleteFramebuffersp(n, framebuffers);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dp",
-             n, voidp_to_uint64(framebuffers));
-}
-
-void glDeleteProgram(GLuint program) {
-       typedef void (*methodType)(GLuint);
-       BEFORE(glDeleteProgram);
-       glDeleteProgramp(program);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "d",
-                       program);
-}
-
-void glDeleteRenderbuffers(GLsizei n, const GLuint * renderbuffers) {
-       typedef void (*methodType)(GLsizei, const GLuint *);
-       BEFORE(glDeleteRenderbuffers);
-       glDeleteRenderbuffersp(n, renderbuffers);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dp",
-             n, voidp_to_uint64(renderbuffers));
-}
-
-void glDeleteShader(GLuint shader) {
-       typedef void (*methodType)(GLuint);
-       BEFORE(glDeleteShader);
-       glDeleteShaderp(shader);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "d", shader);
-}
-
-void glDeleteTextures(GLsizei n, const GLuint * textures) {
-       typedef void (*methodType)(GLsizei, const GLuint *);
-       BEFORE(glDeleteTextures);
-       glDeleteTexturesp(n, textures);
-       error = glGetError();
-       if (error == GL_NO_ERROR) {
-               char buf[128] = "";
-               int bufP = 0;
-               for (int i = 0; i < n; i++) {
-                       bufP += sprintf(buf + bufP, "%u", textures[i]);
-                       if (i != n - 1) {
-                               bufP += sprintf(buf + bufP, ",");
-                       }
-               }
-               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, buf, "dp",
-                     n, voidp_to_uint64(textures));
-       } else {
-               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dp",
-                     n, voidp_to_uint64(textures));
-       }
-}
-
-void glDepthFunc(GLenum func) {
-       typedef void (*methodType)(GLenum);
-       BEFORE(glDepthFunc);
-       glDepthFuncp(func);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(func));
-}
-
-void glDepthMask(GLboolean flag) {
-       typedef void (*methodType)(GLboolean);
-       BEFORE(glDepthMask);
-       glDepthMaskp(flag);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(flag));
-}
-
-void glDepthRangef(GLclampf nearVal, GLclampf farVal) {
-       typedef void (*methodType)(GLclampf, GLclampf);
-       BEFORE(glDepthRangef);
-       glDepthRangefp(nearVal, farVal);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ff",
-                       nearVal, farVal);
-}
-
-void glDetachShader(GLuint program, GLuint shader) {
-       typedef void (*methodType)(GLuint, GLuint);
-       BEFORE(glDetachShader);
-       glDetachShaderp(program, shader);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dd",
-                       program, shader);
-}
-
-void glDisable(GLenum cap) {
-       typedef void (*methodType)(GLenum);
-       BEFORE(glDisable);
-       glDisablep(cap);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(cap));
-}
-
-void glDisableVertexAttribArray(GLuint index) {
-       typedef void (*methodType)(GLuint);
-       BEFORE(glDisableVertexAttribArray);
-       glDisableVertexAttribArrayp(index);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "d", index);
-}
-
-void glDrawArrays(GLenum mode, GLint first, GLsizei count) {
-       typedef void (*methodType)(GLenum, GLint, GLsizei);
-       BEFORE(glDrawArrays);
-       glDrawArraysp(mode, first, count);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xdd",
-             (uint64_t)(mode), first, count);
-}
-
-void glDrawElements(GLenum mode, GLsizei count, GLenum type,
-               const GLvoid * indices) {
-       typedef void (*methodType)(GLenum, GLsizei, GLenum, const GLvoid *);
-       BEFORE(glDrawElements);
-       glDrawElementsp(mode, count, type, indices);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xdxp",
-             (uint64_t)(mode), count, (uint64_t)(type), indices);
-}
-
-// ==================================================================
-// E 2
-// ==================================================================
-
-void glEnable(GLenum cap) {
-       typedef void (*methodType)(GLenum);
-       BEFORE(glEnable);
-       glEnablep(cap);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(cap));
-}
-
-void glEnableVertexAttribArray(GLuint index) {
-       typedef void (*methodType)(GLuint);
-       BEFORE(glEnableVertexAttribArray);
-       glEnableVertexAttribArrayp(index);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "d", index);
-}
-
-#undef eglSwapBuffers
-extern "C" EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface surface) {
-       typedef EGLBoolean (*methodType)(EGLDisplay, EGLSurface);
-       BEFORE_EGL(eglSwapBuffers);
-       EGLBoolean ret = eglSwapBuffersp(dpy, surface);
-       error = eglGetError();
-       AFTER_NO_PARAM('d', ret, APITYPE_CONTEXT, "");
-
-       return ret;
-}
-#define eglSwapBuffers _SglSwapBuffers
-
-EGLBoolean _SglSwapBuffers(EGLDisplay dpy, EGLSurface surface) {
-       typedef EGLBoolean (*methodType)(EGLDisplay, EGLSurface);
-       BEFORE_OSP_UIFW(_SglSwapBuffers);
-       EGLBoolean ret = _SglSwapBuffersp(dpy, surface);
-       error = eglGetError();
-       AFTER_NO_PARAM('d', ret, APITYPE_CONTEXT, "");
-
-       return ret;
-}
-
-// ==================================================================
-// F 5
-// ==================================================================
-
-void glFinish(void) {
-       typedef void (*methodType)(void);
-       BEFORE(glFinish);
-       glFinishp();
-       error = glGetError();
-       AFTER_NO_PARAM('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "");
-}
-
-void glFlush(void) {
-       typedef void (*methodType)(void);
-       BEFORE(glFlush);
-       glFlushp();
-       error = glGetError();
-       AFTER_NO_PARAM('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "");
-}
-
-void glFramebufferRenderbuffer(GLenum target, GLenum attachment,
-               GLenum renderbuffertarget, GLuint renderbuffer) {
-       typedef void (*methodType)(GLenum, GLenum, GLenum, GLuint);
-       BEFORE(glFramebufferRenderbuffer);
-       glFramebufferRenderbufferp(target, attachment, renderbuffertarget,
-                       renderbuffer);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxxd",
-             (uint64_t)(target), (uint64_t)(attachment),
-             (uint64_t)(renderbuffertarget), renderbuffer);
-}
-
-void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget,
-               GLuint texture, GLint level) {
-       typedef void (*methodType)(GLenum, GLenum, GLenum, GLuint, GLint);
-       BEFORE(glFramebufferTexture2D);
-       glFramebufferTexture2Dp(target, attachment, textarget, texture, level);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxxdd",
-             (uint64_t)(target), (uint64_t)(attachment),
-             (uint64_t)(textarget), texture, level);
-}
-
-void glFrontFace(GLenum mode) {
-       typedef void (*methodType)(GLenum);
-       BEFORE(glFrontFace);
-       glFrontFacep(mode);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x",
-             (uint64_t)(mode));
-}
-
-// ==================================================================
-// G 31
-// ==================================================================
-
-void glGenBuffers(GLsizei n, GLuint * buffers) {
-       typedef void (*methodType)(GLsizei, GLuint *);
-       BEFORE(glGenBuffers);
-       glGenBuffersp(n, buffers);
-       error = glGetError();
-       if (error == GL_NO_ERROR) {
-               char buf[128] = "";
-               int bufP = 0;
-               for (int i = 0; i < n; i++) {
-                       bufP += sprintf(buf + bufP, "%u", buffers[i]);
-                       if (i != n - 1) {
-                               bufP += sprintf(buf + bufP, ",");
-                       }
-               }
-               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, buf, "dp",
-                     n, voidp_to_uint64(buffers));
-       } else {
-               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dp",
-                     n, voidp_to_uint64(buffers));
-       }
-}
-
-void glGenFramebuffers(GLsizei n, GLuint * framebuffers) {
-       typedef void (*methodType)(GLsizei, GLuint *);
-       BEFORE(glGenFramebuffers);
-       glGenFramebuffersp(n, framebuffers);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dp",
-             n, voidp_to_uint64(framebuffers));
-}
-
-void glGenRenderbuffers(GLsizei n, GLuint * renderbuffers) {
-       typedef void (*methodType)(GLsizei, GLuint *);
-       BEFORE(glGenRenderbuffers);
-       glGenRenderbuffersp(n, renderbuffers);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dp",
-             n, voidp_to_uint64(renderbuffers));
-}
-
-void glGenTextures(GLsizei n, GLuint * textures) {
-       typedef void (*methodType)(GLsizei, GLuint *);
-       BEFORE(glGenTextures);
-       glGenTexturesp(n, textures);
-       error = glGetError();
-       if (error == GL_NO_ERROR) {
-               char buf[128] = "";
-               int bufP = 0;
-               for (int i = 0; i < n; i++) {
-                       bufP += sprintf(buf + bufP, "%u", textures[i]);
-                       if (i != n - 1) {
-                               bufP += sprintf(buf + bufP, ",");
-                       }
-               }
-               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, buf, "dp",
-                     n, voidp_to_uint64(textures));
-       } else {
-               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dp",
-                     n, voidp_to_uint64(textures));
-       }
-}
-
-void glGenerateMipmap(GLenum target) {
-       typedef void (*methodType)(GLenum);
-       BEFORE(glGenerateMipmap);
-       glGenerateMipmapp(target);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(target));
-}
-
-//lsh_get
-void glGetBooleanv(GLenum pname, GLboolean * params) {
-       typedef void (*methodType)(GLenum, GLboolean *);
-       BEFORE(glGetBooleanv);
-       glGetBooleanvp(pname, params);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(pname));
-}
-
-//lsh_get
-void glGetFloatv(GLenum pname, GLfloat * params) {
-       typedef void (*methodType)(GLenum, GLfloat *);
-       BEFORE(glGetFloatv);
-       glGetFloatvp(pname, params);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(pname));
-}
-
-//lsh_get
-void glGetIntegerv(GLenum pname, GLint * params) {
-       typedef void (*methodType)(GLenum, GLint *);
-       BEFORE(glGetIntegerv);
-       glGetIntegervp(pname, params);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(pname));
-}
-
-//lsh_get
-void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize,
-               GLsizei *length, GLint *size, GLenum *type, char *name) {
-       typedef void (*methodType)(GLuint, GLuint, GLsizei, GLsizei *, GLint *,
-                       GLenum *, char *);
-       BEFORE(glGetActiveAttrib);
-       glGetActiveAttribp(program, index, bufSize, length, size, type, name);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddd",
-                       program, index, bufSize);
-}
-
-//lsh_get
-void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufSize,
-               GLsizei *length, GLint *size, GLenum *type, char *name) {
-       typedef void (*methodType)(GLuint, GLuint, GLsizei, GLsizei *, GLint *,
-                       GLenum *, char *);
-       BEFORE(glGetActiveUniform);
-       glGetActiveUniformp(program, index, bufSize, length, size, type, name);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddd",
-                       program, index, bufSize);
-}
-
-//lsh_get
-void glGetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei *count,
-               GLuint *shaders) {
-       typedef void (*methodType)(GLuint, GLsizei, GLsizei *, GLuint *);
-       BEFORE(glGetAttachedShaders);
-       glGetAttachedShadersp(program, maxCount, count, shaders);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dd",
-                       program, maxCount);
-}
-
-//lsh_get
-int glGetAttribLocation(GLuint program, const char* name)
-{
-       typedef int (*methodType)(GLuint , const char*);
-       BEFORE(glGetAttribLocation);
-       int ret = glGetAttribLocationp(program, name);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xs",
-             (uint64_t)(program), name);
-       return ret;
-}
-
-//lsh_get
-void glGetBufferParameteriv(GLenum target, GLenum value, GLint * data) {
-       typedef void (*methodType)(GLenum, GLenum, GLint *);
-       BEFORE(glGetBufferParameteriv);
-       glGetBufferParameterivp(target, value, data);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xx",
-             (uint64_t)(target), (uint64_t)(value));
-}
-
-GLenum glGetError(void) {
-       typedef GLenum (*methodType)(void);
-       BEFORE(glGetError);
-       GLenum ret = glGetErrorp();
-//     error = glGetError();
-       AFTER_NO_PARAM('d', ret, APITYPE_CONTEXT, "");
-
-       return ret;
-}
-
-//lsh_get
-void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment,
-               GLenum pname, GLint * params) {
-       typedef void (*methodType)(GLenum, GLenum, GLenum, GLint *);
-       BEFORE(glGetFramebufferAttachmentParameteriv);
-       glGetFramebufferAttachmentParameterivp(target, attachment, pname, params);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxx",
-             (uint64_t)(target), (uint64_t)(attachment),
-             (uint64_t)(pname));
-}
-
-//lsh_get
-void glGetProgramInfoLog(GLuint program, GLsizei maxLength, GLsizei *length,
-               char *infoLog) {
-       typedef void (*methodType)(GLuint, GLsizei, GLsizei *, char *);
-       BEFORE(glGetProgramInfoLog);
-       glGetProgramInfoLogp(program, maxLength, length, infoLog);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dd",
-                       program, maxLength);
-}
-
-//lsh_get
-void glGetProgramiv(GLuint program, GLenum pname, GLint *params) {
-       typedef void (*methodType)(GLuint, GLenum, GLint *);
-       BEFORE(glGetProgramiv);
-       glGetProgramivp(program, pname, params);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dx",
-             program, (uint64_t)(pname));
-}
-
-//lsh_get
-void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params) {
-       typedef void (*methodType)(GLenum, GLenum, GLint *);
-       BEFORE(glGetRenderbufferParameteriv);
-       glGetRenderbufferParameterivp(target, pname, params);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xx",
-             (uint64_t)(target), (uint64_t)(pname));
-}
-
-//lsh_get
-void glGetShaderInfoLog(GLuint shader, GLsizei maxLength, GLsizei *length,
-               char *infoLog) {
-       typedef void (*methodType)(GLuint, GLsizei, GLsizei *, char *);
-       BEFORE(glGetShaderInfoLog);
-       glGetShaderInfoLogp(shader, maxLength, length, infoLog);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dd",
-                       shader, maxLength);
-}
-
-//lsh_get
-void glGetShaderPrecisionFormat(GLenum shaderType, GLenum precisionType,
-               GLint *range, GLint *precision) {
-       typedef void (*methodType)(GLenum, GLenum, GLint *, GLint *);
-       BEFORE(glGetShaderPrecisionFormat);
-       glGetShaderPrecisionFormatp(shaderType, precisionType, range, precision);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xx",
-             (uint64_t)(shaderType), (uint64_t)(precisionType));
-}
-
-//lsh_get
-void glGetShaderSource(GLuint shader, GLsizei bufSize, GLsizei *length,
-               char *source) {
-       typedef void (*methodType)(GLuint, GLsizei, GLsizei *, char *);
-       BEFORE(glGetShaderSource);
-       glGetShaderSourcep(shader, bufSize, length, source);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dd",
-                       shader, bufSize);
-}
-
-//lsh_get
-void glGetShaderiv(GLuint shader, GLenum pname, GLint *params) {
-       typedef void (*methodType)(GLuint, GLenum, GLint *);
-       BEFORE(glGetShaderiv);
-       glGetShaderivp(shader, pname, params);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dx",
-             shader, (uint64_t)(pname));
-}
-
-const GLubyte* glGetString(GLenum name) {
-       typedef const GLubyte* (*methodType)(GLenum);
-       BEFORE(glGetString);
-       const GLubyte* ret = glGetStringp(name);
-       error = glGetError();
-       AFTER('p', ret, APITYPE_CONTEXT, "", "x", (uint64_t)(name));
-
-       return ret;
-}
-
-//lsh_get
-void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat * params) {
-       typedef void (*methodType)(GLenum, GLenum, GLfloat *);
-       BEFORE(glGetTexParameterfv);
-       glGetTexParameterfvp(target, pname, params);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xx",
-             (uint64_t)(target), (uint64_t)(pname));
-}
-
-//lsh_get
-void glGetTexParameteriv(GLenum target, GLenum pname, GLint * params) {
-       typedef void (*methodType)(GLenum, GLenum, GLint *);
-       BEFORE(glGetTexParameteriv);
-       glGetTexParameterivp(target, pname, params);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xx",
-             (uint64_t)(target), (uint64_t)(pname));
-}
-
-//lsh_get
-void glGetUniformfv(GLuint program, GLint location, GLfloat *params) {
-       typedef void (*methodType)(GLuint, GLuint, GLfloat *);
-       BEFORE(glGetUniformfv);
-       glGetUniformfvp(program, location, params);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dd",
-                       program, location);
-}
-
-//lsh_get
-void glGetUniformiv(GLuint program, GLint location, GLint *params) {
-       typedef void (*methodType)(GLuint, GLuint, GLint *);
-       BEFORE(glGetUniformiv);
-       glGetUniformivp(program, location, params);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dd",
-                       program, location);
-}
-
-//lsh_get
-GLint glGetUniformLocation(GLuint program, const char *name) {
-       typedef GLint (*methodType)(GLuint, const char *);
-       BEFORE(glGetUniformLocation);
-       GLint ret = glGetUniformLocationp(program, name);
-       error = glGetError();
-       AFTER('d', ret, APITYPE_CONTEXT, "", "d", program);
-
-       return ret;
-}
-
-//lsh_get
-void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params) {
-       typedef void (*methodType)(GLuint, GLenum, GLfloat *);
-       BEFORE(glGetVertexAttribfv);
-       glGetVertexAttribfvp(index, pname, params);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dx",
-             index, (uint64_t)(pname));
-}
-
-//lsh_get
-void glGetVertexAttribiv(GLuint index, GLenum pname, GLint *params) {
-       typedef void (*methodType)(GLuint, GLenum, GLint *);
-       BEFORE(glGetVertexAttribiv);
-       glGetVertexAttribivp(index, pname, params);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dx",
-             index, (uint64_t)(pname));
-}
-
-//lsh_get
-void glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid **pointer) {
-       typedef void (*methodType)(GLuint, GLenum, GLvoid **);
-       BEFORE(glGetVertexAttribPointerv);
-       glGetVertexAttribPointervp(index, pname, pointer);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dx",
-             index, (uint64_t)(pname));
-}
-
-// ==================================================================
-// H 1
-// ==================================================================
-
-void glHint(GLenum target, GLenum mode) {
-       typedef void (*methodType)(GLenum, GLenum);
-       BEFORE(glHint);
-       glHintp(target, mode);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xx",
-             (uint64_t)(target), (uint64_t)(mode));
-}
-
-// ==================================================================
-// I 7
-// ==================================================================
-
-GLboolean glIsBuffer(GLuint buffer) {
-       typedef GLboolean (*methodType)(GLuint);
-       BEFORE(glIsBuffer);
-       GLboolean ret = glIsBufferp(buffer);
-       error = glGetError();
-       AFTER('c', ret, APITYPE_CONTEXT, "", "d", buffer);
-
-       return ret;
-}
-
-GLboolean glIsEnabled(GLenum cap) {
-       typedef GLboolean (*methodType)(GLenum);
-       BEFORE(glIsEnabled);
-       GLboolean ret = glIsEnabledp(cap);
-       error = glGetError();
-       AFTER('c', ret, APITYPE_CONTEXT, "", "x", (uint64_t)(cap));
-
-       return ret;
-}
-
-GLboolean glIsFramebuffer(GLuint framebuffer) {
-       typedef GLboolean (*methodType)(GLuint);
-       BEFORE(glIsFramebuffer);
-       GLboolean ret = glIsFramebufferp(framebuffer);
-       error = glGetError();
-       AFTER('c', ret, APITYPE_CONTEXT, "", "d", framebuffer);
-
-       return ret;
-}
-
-GLboolean glIsProgram(GLuint program) {
-       typedef GLboolean (*methodType)(GLuint);
-       BEFORE(glIsProgram);
-       GLboolean ret = glIsProgramp(program);
-       error = glGetError();
-       AFTER('c', ret, APITYPE_CONTEXT, "", "d", program);
-
-       return ret;
-}
-
-GLboolean glIsRenderbuffer(GLuint renderbuffer) {
-       typedef GLboolean (*methodType)(GLuint);
-       BEFORE(glIsRenderbuffer);
-       GLboolean ret = glIsRenderbufferp(renderbuffer);
-       error = glGetError();
-       AFTER('c', ret, APITYPE_CONTEXT, "", "d", renderbuffer);
-
-       return ret;
-}
-
-GLboolean glIsShader(GLuint shader) {
-       typedef GLboolean (*methodType)(GLuint);
-       BEFORE(glIsShader);
-       GLboolean ret = glIsShaderp(shader);
-       error = glGetError();
-       AFTER('c', ret, APITYPE_CONTEXT, "", "d", shader);
-
-       return ret;
-}
-
-GLboolean glIsTexture(GLuint texture) {
-       typedef GLboolean (*methodType)(GLuint);
-       BEFORE(glIsTexture);
-       GLboolean ret = glIsTexturep(texture);
-       error = glGetError();
-       AFTER('c', ret, APITYPE_CONTEXT, "", "d", texture);
-
-       return ret;
-}
-
-// ==================================================================
-// L 2
-// ==================================================================
-
-void glLineWidth(GLfloat width) {
-       typedef void (*methodType)(GLfloat);
-       BEFORE(glLineWidth);
-       glLineWidthp(width);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "f", width);
-}
-
-void glLinkProgram(GLuint program) {
-       typedef void (*methodType)(GLuint);
-       BEFORE(glLinkProgram);
-       glLinkProgramp(program);
-       error = glGetError();
-       char buf[512] = "";
-       if (error == GL_NO_ERROR) {
-               int bufP = 0;
-               GLint activeNum[1];
-               GLint maxLength[1];
-               glGetProgramiv(program, GL_ACTIVE_ATTRIBUTES, activeNum);
-               glGetProgramiv(program, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, maxLength);
-               bufP += sprintf(buf + bufP, "%d", activeNum[0]);
-               for (int i = 0; i < activeNum[0]; i++) {
-                       GLsizei length[1];
-                       GLint size[1];
-                       GLenum type[1];
-                       char name[maxLength[0]];
-                       glGetActiveAttrib(program, i, maxLength[0], length, size, type,
-                                       name);
-                       bufP += sprintf(buf + bufP, ",%d,%s,%d,%x", i, name, size[0],
-                                       type[0]);
-               }
-
-               glGetProgramiv(program, GL_ACTIVE_UNIFORMS, activeNum);
-               glGetProgramiv(program, GL_ACTIVE_UNIFORM_MAX_LENGTH, maxLength);
-               bufP += sprintf(buf + bufP, ",%d", activeNum[0]);
-               for (int i = 0; i < activeNum[0]; i++) {
-                       GLsizei length[1];
-                       GLint size[1];
-                       GLenum type[1];
-                       char name[maxLength[0]];
-                       glGetActiveUniform(program, i, maxLength[0], length, size, type,
-                                       name);
-                       bufP += sprintf(buf + bufP, ",%d,%s,%d,%x", i, name, size[0],
-                                       type[0]);
-               }
-       }
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, buf, "d",
-                       program);
-}
-
-// ==================================================================
-// P 2
-// ==================================================================
-
-void glPixelStorei(GLenum pname, GLint param) {
-       typedef void (*methodType)(GLenum, GLint);
-       BEFORE(glPixelStorei);
-       glPixelStoreip(pname, param);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xd",
-             (uint64_t)(pname), param);
-}
-
-void glPolygonOffset(GLfloat factor, GLfloat units) {
-       typedef void (*methodType)(GLfloat, GLfloat);
-       BEFORE(glPolygonOffset);
-       glPolygonOffsetp(factor, units);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ff",
-                       factor, units);
-}
-
-// ==================================================================
-// R 3
-// ==================================================================
-
-//lsh_get
-void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height,
-               GLenum format, GLenum type, GLvoid * data) {
-       typedef void (*methodType)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum,
-                       GLvoid *);
-       BEFORE(glReadPixels);
-       glReadPixelsp(x, y, width, height, format, type, data);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "",
-             "ddddxx", x, y, width, height,
-             (uint64_t)(format), (uint64_t)(type));
-}
-
-void glReleaseShaderCompiler(void) {
-       typedef void (*methodType)(void);
-       BEFORE(glReleaseShaderCompiler);
-       glReleaseShaderCompilerp();
-       error = glGetError();
-       AFTER_NO_PARAM('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "");
-}
-
-void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width,
-               GLsizei height) {
-       typedef void (*methodType)(GLenum, GLenum, GLsizei, GLsizei);
-       BEFORE(glRenderbufferStorage);
-       glRenderbufferStoragep(target, internalformat, width, height);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxdd",
-             (uint64_t)(target), (uint64_t)(internalformat),
-             width, height);
-}
-
-// ==================================================================
-// S 10
-// ==================================================================
-
-void glSampleCoverage(GLclampf value, GLboolean invert) {
-       typedef void (*methodType)(GLclampf, GLboolean);
-       BEFORE(glSampleCoverage);
-       glSampleCoveragep(value, invert);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "fx",
-                       value, (uint64_t)(invert));
-}
-
-void glScissor(GLint x, GLint y, GLsizei width, GLsizei height) {
-       typedef void (*methodType)(GLint, GLint, GLsizei, GLsizei);
-       BEFORE(glScissor);
-       glScissorp(x, y, width, height);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dddd",
-                       x, y, width, height);
-}
-
-//lsh_param
-void glShaderBinary(GLsizei n, const GLuint *shaders, GLenum binaryformat,
-               const void *binary, GLsizei length) {
-       typedef void (*methodType)(GLsizei, const GLuint *, GLenum, const void *,
-                       GLsizei);
-       BEFORE(glShaderBinary);
-       glShaderBinaryp(n, shaders, binaryformat, binary, length);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "",
-             "dpxpd", n, voidp_to_uint64(shaders),
-             (uint64_t)(binaryformat), voidp_to_uint64(binary), length);
-}
-
-//lsh_param
-void glShaderSource(GLuint shader, GLsizei count, const char** string,
-               const GLint* length) {
-       typedef void (*methodType)(GLuint, GLsizei, const char**, const GLint*);
-       BEFORE(glShaderSource);
-       glShaderSourcep(shader, count, string, length);
-       error = glGetError();
-       if (error == GL_NO_ERROR) {
-               GLint length[1];
-               glGetShaderiv(shader, GL_SHADER_SOURCE_LENGTH, length);
-               char buf[length[0]];
-               glGetShaderSource(shader, length[0], NULL, buf);
-               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, buf,
-                     "ddpp", shader, count,
-                     voidp_to_uint64(string), voidp_to_uint64(length));
-       } else {
-               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "",
-                     "ddpp", shader, count,
-                     voidp_to_uint64(string), voidp_to_uint64(length));
-       }
-}
-
-void glStencilFunc(GLenum func, GLint ref, GLuint mask) {
-       typedef void (*methodType)(GLenum, GLint, GLint);
-       BEFORE(glStencilFunc);
-       glStencilFuncp(func, ref, mask);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xdd",
-             (uint64_t)(func), ref, mask);
-}
-
-void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) {
-       typedef void (*methodType)(GLenum, GLenum, GLint, GLuint);
-       BEFORE(glStencilFuncSeparate);
-       glStencilFuncSeparatep(face, func, ref, mask);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxdd",
-             (uint64_t)(face), (uint64_t)(func), ref, mask);
-}
-
-void glStencilMask(GLuint mask) {
-       typedef void (*methodType)(GLuint);
-       BEFORE(glStencilMask);
-       glStencilMaskp(mask);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "d", mask);
-}
-
-void glStencilMaskSeparate(GLenum face, GLuint mask) {
-       typedef void (*methodType)(GLenum, GLuint);
-       BEFORE(glStencilMaskSeparate);
-       glStencilMaskSeparatep(face, mask);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xd",
-             (uint64_t)(face), mask);
-}
-
-void glStencilOp(GLenum sfail, GLenum dpfail, GLenum dppass) {
-       typedef void (*methodType)(GLenum, GLenum, GLenum);
-       BEFORE(glStencilOp);
-       glStencilOpp(sfail, dpfail, dppass);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxx",
-             (uint64_t)(sfail), (uint64_t)(dpfail),
-             (uint64_t)(dppass));
-}
-
-void glStencilOpSeparate(GLenum face, GLenum sfail, GLenum dpfail,
-               GLenum dppass) {
-       typedef void (*methodType)(GLenum, GLenum, GLenum, GLenum);
-       BEFORE(glStencilOpSeparate);
-       glStencilOpSeparatep(face, sfail, dpfail, dppass);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxxx",
-             (uint64_t)(face), (uint64_t)(sfail), (uint64_t)(dpfail),
-             (uint64_t)(dppass));
-}
-
-// ==================================================================
-// T 6
-// ==================================================================
-
-void glTexImage2D(GLenum target, GLint level, GLenum internalformat,
-               GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type,
-               const GLvoid *data)
-{
-       typedef void (*methodType)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint,
-                       GLenum, GLenum, const GLvoid *);
-       BEFORE(glTexImage2D);
-       glTexImage2Dp(target, level, internalformat, width, height, border, format,
-                       type, data);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xdddddxxp",
-             (uint64_t)(target), level, internalformat, width, height,
-             border, (uint64_t)(format), (uint64_t)(type),
-             voidp_to_uint64(data));
-}
-
-void glTexParameterf(GLenum target, GLenum pname, GLfloat param) {
-       typedef void (*methodType)(GLenum, GLenum, GLfloat);
-       BEFORE(glTexParameterf);
-       glTexParameterfp(target, pname, param);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxf",
-             (uint64_t)(target), (uint64_t)(pname), param);
-}
-
-void glTexParameterfv(GLenum target, GLenum pname, const GLfloat * params) {
-       typedef void (*methodType)(GLenum, GLenum, const GLfloat *);
-       BEFORE(glTexParameterfv);
-       glTexParameterfvp(target, pname, params);
-       error = glGetError();
-       if(error == GL_NO_ERROR) {
-               char param0[8];
-               sprintf(param0, "%x", (GLenum)params[0]);
-               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, param0, "xxp",
-                     (uint64_t)(target), (uint64_t)(pname),
-                     voidp_to_uint64(params));
-       } else {
-               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxp",
-                     (uint64_t)(target), (uint64_t)(pname),
-                     voidp_to_uint64(params));
-       }
-}
-
-void glTexParameteri(GLenum target, GLenum pname, GLint param) {
-       typedef void (*methodType)(GLenum, GLenum, GLint);
-       BEFORE(glTexParameteri);
-       glTexParameterip(target, pname, param);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxx",
-             (uint64_t)(target), (uint64_t)(pname),
-             (uint64_t)(param));
-}
-
-void glTexParameteriv(GLenum target, GLenum pname, const GLint * params) {
-       typedef void (*methodType)(GLenum, GLenum, const GLint *);
-       BEFORE(glTexParameteriv);
-       glTexParameterivp(target, pname, params);
-       error = glGetError();
-       if(error == GL_NO_ERROR) {
-               char param0[8];
-               sprintf(param0, "%x", (GLenum)params[0]);
-               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, param0, "xxp",
-                     (uint64_t)(target), (uint64_t)(pname),
-                     voidp_to_uint64(params));
-       } else {
-               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxp",
-                     (uint64_t)(target),
-                     (uint64_t)(pname),
-                     voidp_to_uint64(params));
-       }
-}
-
-void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
-               GLsizei width, GLsizei height, GLenum format, GLenum type,
-               const GLvoid * data) {
-       typedef void (*methodType)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei,
-                       GLenum, GLenum, const GLvoid *);
-       BEFORE(glTexSubImage2D);
-       glTexSubImage2Dp(target, level, xoffset, yoffset, width, height, format, type,
-                       data);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "",
-             "xdddddxxp",
-             (uint64_t)(target), level, xoffset, yoffset, width, height,
-             (uint64_t)(format), (uint64_t)(type), voidp_to_uint64(data));
-}
-
-// ==================================================================
-// U 20
-// ==================================================================
-
-void glUniform1f(GLint location, GLfloat v0) {
-       typedef void (*methodType)(GLint, GLfloat);
-       BEFORE(glUniform1f);
-       glUniform1fp(location, v0);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "df",
-                       location, v0);
-}
-
-void glUniform2f(GLint location, GLfloat v0, GLfloat v1) {
-       typedef void (*methodType)(GLint, GLfloat, GLfloat);
-       BEFORE(glUniform2f);
-       glUniform2fp(location, v0, v1);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dff",
-                       location, v0, v1);
-}
-
-void glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) {
-       typedef void (*methodType)(GLint, GLfloat, GLfloat, GLfloat);
-       BEFORE(glUniform3f);
-       glUniform3fp(location, v0, v1, v2);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dfff",
-                       location, v0, v1, v2);
-}
-
-void glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2,
-               GLfloat v3) {
-       typedef void (*methodType)(GLint, GLfloat, GLfloat, GLfloat, GLfloat);
-       BEFORE(glUniform4f);
-       glUniform4fp(location, v0, v1, v2, v3);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "",
-                       "dffff", location, v0, v1, v2, v3);
-}
-
-void glUniform1fv(GLint location, GLsizei count, const GLfloat *value) {
-       typedef void (*methodType)(GLint, GLsizei, const GLfloat *);
-       BEFORE(glUniform1fv);
-       glUniform1fvp(location, count, value);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddp",
-             location, count, voidp_to_uint64(value));
-}
-
-void glUniform2fv(GLint location, GLsizei count, const GLfloat *value) {
-       typedef void (*methodType)(GLint, GLsizei, const GLfloat *);
-       BEFORE(glUniform2fv);
-       glUniform2fvp(location, count, value);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddp",
-             location, count, voidp_to_uint64(value));
-}
-
-void glUniform3fv(GLint location, GLsizei count, const GLfloat *value) {
-       typedef void (*methodType)(GLint, GLsizei, const GLfloat *);
-       BEFORE(glUniform3fv);
-       glUniform3fvp(location, count, value);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddp",
-             location, count, voidp_to_uint64(value));
-}
-
-void glUniform4fv(GLint location, GLsizei count, const GLfloat *value) {
-       typedef void (*methodType)(GLint, GLsizei, const GLfloat *);
-       BEFORE(glUniform4fv);
-       glUniform4fvp(location, count, value);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddp",
-             location, count, voidp_to_uint64(value));
-}
-
-void glUniform1i(GLint location, GLint v0) {
-       typedef void (*methodType)(GLint, GLint);
-       BEFORE(glUniform1i);
-       glUniform1ip(location, v0);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dd",
-                       location, v0);
-}
-
-void glUniform2i(GLint location, GLint v0, GLint v1) {
-       typedef void (*methodType)(GLint, GLint, GLint);
-       BEFORE(glUniform2i);
-       glUniform2ip(location, v0, v1);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddd",
-                       location, v0, v1);
-}
-
-void glUniform3i(GLint location, GLint v0, GLint v1, GLint v2) {
-       typedef void (*methodType)(GLint, GLint, GLint, GLint);
-       BEFORE(glUniform3i);
-       glUniform3ip(location, v0, v1, v2);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dddd",
-                       location, v0, v1, v2);
-}
-
-void glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3) {
-       typedef void (*methodType)(GLint, GLint, GLint, GLint, GLint);
-       BEFORE(glUniform4i);
-       glUniform4ip(location, v0, v1, v2, v3);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "",
-                       "ddddd", location, v0, v1, v2, v3);
-}
-
-void glUniform1iv(GLint location, GLsizei count, const GLint *value) {
-       typedef void (*methodType)(GLint, GLsizei, const GLint *);
-       BEFORE(glUniform1iv);
-       glUniform1ivp(location, count, value);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddp",
-             location, count, voidp_to_uint64(value));
-}
-
-void glUniform2iv(GLint location, GLsizei count, const GLint *value) {
-       typedef void (*methodType)(GLint, GLsizei, const GLint *);
-       BEFORE(glUniform2iv);
-       glUniform2ivp(location, count, value);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddp",
-             location, count, voidp_to_uint64(value));
-}
-
-void glUniform3iv(GLint location, GLsizei count, const GLint *value) {
-       typedef void (*methodType)(GLint, GLsizei, const GLint *);
-       BEFORE(glUniform3iv);
-       glUniform3ivp(location, count, value);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddp",
-             location, count, voidp_to_uint64(value));
-}
-
-void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose,
-               const GLfloat *value) {
-       typedef void (*methodType)(GLint, GLsizei, GLboolean, const GLfloat *);
-       BEFORE(glUniformMatrix2fv);
-       glUniformMatrix2fvp(location, count, transpose, value);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddxp",
-             location, count, (uint64_t)(transpose), voidp_to_uint64(value));
-}
-
-void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose,
-               const GLfloat *value) {
-       typedef void (*methodType)(GLint, GLsizei, GLboolean, const GLfloat *);
-       BEFORE(glUniformMatrix3fv);
-       glUniformMatrix3fvp(location, count, transpose, value);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddxp",
-             location, count, (uint64_t)(transpose), voidp_to_uint64(value));
-}
-
-void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose,
-               const GLfloat *value) {
-       typedef void (*methodType)(GLint, GLsizei, GLboolean, const GLfloat *);
-       BEFORE(glUniformMatrix4fv);
-       glUniformMatrix4fvp(location, count, transpose, value);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddxp",
-             location, count, (uint64_t)(transpose), voidp_to_uint64(value));
-}
-
-void glUniform4iv(GLint location, GLsizei count, const GLint *value) {
-       typedef void (*methodType)(GLint, GLsizei, const GLint *);
-       BEFORE(glUniform4iv);
-       glUniform4ivp(location, count, value);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddp",
-             location, count, voidp_to_uint64(value));
-}
-
-void glUseProgram(GLuint program) {
-       typedef void (*methodType)(GLuint);
-       BEFORE(glUseProgram);
-       glUseProgramp(program);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "d",
-                       program);
-}
-
-// ==================================================================
-// V 7
-// ==================================================================
-
-void glValidateProgram(GLuint program) {
-       typedef void (*methodType)(GLuint);
-       BEFORE(glValidateProgram);
-       glValidateProgramp(program);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "d",
-                       program);
-}
-
-void glVertexAttrib1f(GLuint index, GLfloat v0) {
-       typedef void (*methodType)(GLuint, GLfloat);
-       BEFORE(glVertexAttrib1f);
-       glVertexAttrib1fp(index, v0);
-
-       GLfloat cv[4];
-       glGetVertexAttribfv(index, GL_CURRENT_VERTEX_ATTRIB, cv);
-       sprintf(contextValue, "%f,%f,%f,%f", cv[0], cv[1], cv[2], cv[3]);
-
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, contextValue,
-                       "df", index, v0);
-}
-
-void glVertexAttrib2f(GLuint index, GLfloat v0, GLfloat v1) {
-       typedef void (*methodType)(GLuint, GLfloat, GLfloat);
-       BEFORE(glVertexAttrib2f);
-       glVertexAttrib2fp(index, v0, v1);
-
-       GLfloat cv[4];
-       glGetVertexAttribfv(index, GL_CURRENT_VERTEX_ATTRIB, cv);
-       sprintf(contextValue, "%f,%f,%f,%f", cv[0], cv[1], cv[2], cv[3]);
-
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, contextValue,
-                       "dff", index, v0, v1);
-}
-
-void glVertexAttrib3f(GLuint index, GLfloat v0, GLfloat v1, GLfloat v2) {
-       typedef void (*methodType)(GLuint, GLfloat, GLfloat, GLfloat);
-       BEFORE(glVertexAttrib3f);
-       glVertexAttrib3fp(index, v0, v1, v2);
-
-       GLfloat cv[4];
-       glGetVertexAttribfv(index, GL_CURRENT_VERTEX_ATTRIB, cv);
-       sprintf(contextValue, "%f,%f,%f,%f", cv[0], cv[1], cv[2], cv[3]);
-
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, contextValue,
-                       "dfff", index, v0, v1, v2);
-}
-
-void glVertexAttrib4f(GLuint index, GLfloat v0, GLfloat v1, GLfloat v2,
-               GLfloat v3) {
-       typedef void (*methodType)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
-       BEFORE(glVertexAttrib4f);
-       glVertexAttrib4fp(index, v0, v1, v2, v3);
-
-       GLfloat cv[4];
-       glGetVertexAttribfv(index, GL_CURRENT_VERTEX_ATTRIB, cv);
-       sprintf(contextValue, "%f,%f,%f,%f", cv[0], cv[1], cv[2], cv[3]);
-
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, contextValue,
-                       "dffff", index, v0, v1, v2, v3);
-}
-
-void glVertexAttrib1fv(GLuint index, const GLfloat *v) {
-       typedef void (*methodType)(GLuint, const GLfloat *);
-       BEFORE(glVertexAttrib1fv);
-       glVertexAttrib1fvp(index, v);
-
-       GLfloat cv[4];
-       glGetVertexAttribfv(index, GL_CURRENT_VERTEX_ATTRIB, cv);
-       sprintf(contextValue, "%f,%f,%f,%f", cv[0], cv[1], cv[2], cv[3]);
-
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, contextValue,
-             "dp", index, voidp_to_uint64(v));
-}
-
-void glVertexAttrib2fv(GLuint index, const GLfloat *v) {
-       typedef void (*methodType)(GLuint, const GLfloat *);
-       BEFORE(glVertexAttrib2fv);
-       glVertexAttrib2fvp(index, v);
-
-       GLfloat cv[4];
-       glGetVertexAttribfv(index, GL_CURRENT_VERTEX_ATTRIB, cv);
-       sprintf(contextValue, "%f,%f,%f,%f", cv[0], cv[1], cv[2], cv[3]);
-
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, contextValue,
-             "dp", index, voidp_to_uint64(v));
-}
-
-void glVertexAttrib3fv(GLuint index, const GLfloat *v) {
-       typedef void (*methodType)(GLuint, const GLfloat *);
-       BEFORE(glVertexAttrib3fv);
-       glVertexAttrib3fvp(index, v);
-
-       GLfloat cv[4];
-       glGetVertexAttribfv(index, GL_CURRENT_VERTEX_ATTRIB, cv);
-       sprintf(contextValue, "%f,%f,%f,%f", cv[0], cv[1], cv[2], cv[3]);
-
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, contextValue,
-             "dp", index, voidp_to_uint64(v));
-}
-
-void glVertexAttrib4fv(GLuint index, const GLfloat *v) {
-       typedef void (*methodType)(GLuint, const GLfloat *);
-       BEFORE(glVertexAttrib4fv);
-       glVertexAttrib4fvp(index, v);
-       GLfloat cv[4];
-       glGetVertexAttribfv(index, GL_CURRENT_VERTEX_ATTRIB, cv);
-       sprintf(contextValue, "%f,%f,%f,%f", cv[0], cv[1], cv[2], cv[3]);
-
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, contextValue,
-             "dp", index, voidp_to_uint64(v));
-}
-
-void glVertexAttribPointer(GLuint index, GLint size, GLenum type,
-               GLboolean normalized, GLsizei stride, const GLvoid * pointer) {
-       typedef void (*methodType)(GLuint, GLint, GLenum, GLboolean, GLsizei,
-                       const GLvoid *);
-       BEFORE(glVertexAttribPointer);
-       glVertexAttribPointerp(index, size, type, normalized, stride, pointer);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddxxdp",
-             index, size, (uint64_t)(type), (uint64_t)(normalized),
-             stride, voidp_to_uint64(pointer));
-}
-
-void glViewport(GLint x, GLint y, GLsizei width, GLsizei height) {
-       typedef void (*methodType)(GLint, GLint, GLsizei, GLsizei);
-       BEFORE(glViewport);
-       glViewportp(x, y, width, height);
-       error = glGetError();
-       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dddd",
-                       x, y, width, height);
-}
index 38d83712771309f278bc5adf02d50d6276f19fc9..5e6a7615dd6f634450aed84fd23a854a61f55f07 100644 (file)
@@ -45,8 +45,6 @@
 #define APITYPE_CONTEXT 1
 #define APITYPE_NO_CONTEXT 2
 
-char contextValue[256];
-
 #define PACK_GL_ADD(GL_api_type, GL_elapsed_time, GL_context_value)            \
        do {                                                    \
                BUF_PTR = pack_int32(BUF_PTR, (uint32_t)GL_api_type);   \
@@ -99,33 +97,37 @@ char contextValue[256];
        }                                                               \
        PRE_PROBEBLOCK()
 
+#define INIT_LIB_ID_STR(LIB_ID, LIB_STR, KEYS)                                                 \
+               if (lib_handle[LIB_ID] == ((void *) 0)) {               \
+                       lib_handle[LIB_ID] = dlopen(LIB_STR, RTLD_LAZY | RTLD_GLOBAL); \
+                       if (lib_handle[LIB_ID] == ((void *) 0)) {       \
+                               char perror_msg[128];                   \
+                               sprintf(perror_msg, "dlopen failed : [%s],%s", \
+                                       __FUNCTION__, LIB_STR);                 \
+                               perror(perror_msg);                             \
+                               exit(0);                                \
+                       }                                               \
+               }
+
+#define INIT_LIB(LIB_ID, KEYS)                                         \
+       INIT_LIB_ID_STR(LIB_ID, lib_string[LIB_ID], KEYS)
+
 #define BEFORE_EGL(FUNCNAME)                                   \
-       DECLARE_VARIABLE_STANDARD_NORET;                        \
-       GLenum error = GL_NO_ERROR;                             \
-       static methodType FUNCNAME ## p = 0;                    \
-       void* tmpPtr = 0;                                       \
-       int32_t vAPI_ID = API_ID_ ## FUNCNAME;                  \
+       DECLARE_VARIABLE_STANDARD_NORET;                                \
+       GLenum error = GL_NO_ERROR;                                     \
+       static methodType FUNCNAME ## p = 0;                            \
+       void* tmpPtr = 0;                                               \
+       int32_t vAPI_ID = API_ID_ ## FUNCNAME;                          \
        uint64_t start_nsec = get_current_nsec();                       \
        if(!FUNCNAME##p) {                                              \
                probeBlockStart();                                      \
-               if (lib_handle[LIBEGL] == ((void *) 0)) {               \
-                       lib_handle[LIBEGL] = dlopen(lib_string[LIBEGL], RTLD_LAZY | RTLD_GLOBAL); \
-                       if (lib_handle[LIBEGL] == ((void *) 0)) {       \
-                               char perror_msg[128];                   \
-                               sprintf(perror_msg, "dlopen failed : %s", \
-                                       lib_string[LIBEGL]);            \
-                               perror(perror_msg);                     \
-                               exit(0);                                \
-                       }                                               \
-               }                                                       \
-                                                                       \
-               tmpPtr = dlsym(lib_handle[LIBEGL], #FUNCNAME);     \
+               INIT_LIB(LIBEGL, RTLD_LAZY | RTLD_GLOBAL);              \
+               tmpPtr = dlsym(lib_handle[LIBEGL], #FUNCNAME);          \
                if (tmpPtr == NULL || dlerror() != NULL) {              \
-                       perror("dlsym failed : " #FUNCNAME);       \
+                       perror("dlsym failed : " #FUNCNAME);            \
                        exit(0);                                        \
                }                                                       \
-                                                                       \
-               memcpy(&FUNCNAME##p, &tmpPtr, sizeof(tmpPtr));     \
+               memcpy(&FUNCNAME##p, &tmpPtr, sizeof(tmpPtr));          \
                probeBlockEnd();                                        \
        }                                                               \
        PRE_PROBEBLOCK()
@@ -139,24 +141,13 @@ char contextValue[256];
        uint64_t start_nsec = get_current_nsec();                               \
        if(!FUNCNAME##p) {                                              \
                probeBlockStart();                                      \
-               if (lib_handle[LIBOSP_UIFW] == ((void *) 0)) {          \
-                       lib_handle[LIBOSP_UIFW] = dlopen(lib_string[LIBOSP_UIFW], RTLD_LAZY); \
-                       if (lib_handle[LIBOSP_UIFW] == ((void *) 0)) {       \
-                               char perror_msg[128];                   \
-                               sprintf(perror_msg, "dlopen failed : %s", \
-                                       lib_string[LIBOSP_UIFW]);               \
-                               perror(perror_msg);                     \
-                               exit(0);                                \
-                       }                                               \
-               }                                                       \
-                                                                       \
+               INIT_LIB(LIBOSP_UIFW, RTLD_LAZY);                       \
                tmpPtr = dlsym(lib_handle[LIBOSP_UIFW], #FUNCNAME);     \
                if (tmpPtr == NULL || dlerror() != NULL) {              \
-                       perror("dlsym failed : " #FUNCNAME);       \
+                       perror("dlsym failed : " #FUNCNAME);            \
                        exit(0);                                        \
                }                                                       \
-                                                                       \
-               memcpy(&FUNCNAME##p, &tmpPtr, sizeof(tmpPtr));     \
+               memcpy(&FUNCNAME##p, &tmpPtr, sizeof(tmpPtr));          \
                probeBlockEnd();                                        \
        }                                                               \
        PRE_PROBEBLOCK()
diff --git a/probe_graphics/da_gles20_native.cpp b/probe_graphics/da_gles20_native.cpp
new file mode 100644 (file)
index 0000000..cb41fc2
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+ *  DA probe
+ *
+ * Copyright (c) 2000 - 2013 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ *
+ * Vitaliy Cherepanov <v.cherepanov@samsung.com>
+ *
+ * This library is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, write to the Free Software Foundation, Inc., 51
+ * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Contributors:
+ * - Samsung RnD Institute Russia
+ *
+ */
+
+//disable tizen redefines
+#define _GL2_MACRO_H_
+#define _GL_MACRO_H_
+
+extern "C" {
+/*
+ * this include to make C native open gl functions
+ * probe prototypes
+ *
+ */
+
+#include "da_gles20_tizen.cpp"
+
+} /* extern C */
+
+#undef eglSwapBuffers
+extern "C" EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface surface)
+{
+       typedef EGLBoolean (*methodType)(EGLDisplay, EGLSurface);
+       BEFORE_EGL(eglSwapBuffers);
+       EGLBoolean ret = eglSwapBuffersp(dpy, surface);
+       error = eglGetError();
+       AFTER_NO_PARAM('d', ret, APITYPE_CONTEXT, "");
+
+       return ret;
+}
+#define eglSwapBuffers _SglSwapBuffers
+
+EGLBoolean _SglSwapBuffers(EGLDisplay dpy, EGLSurface surface)
+{
+       typedef EGLBoolean (*methodType)(EGLDisplay, EGLSurface);
+       BEFORE_OSP_UIFW(_SglSwapBuffers);
+       EGLBoolean ret = _SglSwapBuffersp(dpy, surface);
+       error = eglGetError();
+       AFTER_NO_PARAM('d', ret, APITYPE_CONTEXT, "");
+
+       return ret;
+}
+
+#undef eglGetProcAddress
+extern "C" EGLAPI __eglMustCastToProperFunctionPointerType
+eglGetProcAddress(const char* procname)
+{
+       typedef EGLAPI __eglMustCastToProperFunctionPointerType
+               (*methodType)(const char* procname);
+       __eglMustCastToProperFunctionPointerType ret = NULL;
+
+       BEFORE_EGL(eglGetProcAddress);
+
+       probeBlockStart();
+       INIT_LIB(LIBSELF, RTLD_LAZY | RTLD_GLOBAL);
+       ret = (typeof(ret)) dlsym(lib_handle[LIBSELF], procname);
+       if (dlerror() != NULL)
+               ret = NULL;
+       probeBlockEnd();
+
+       if (ret == NULL) {
+               // we don't have <procname> function in our lib
+               // so we need find original function
+               ret = eglGetProcAddressp(procname);
+               error = eglGetError();
+       }
+
+       AFTER_NO_PARAM('p', ret, APITYPE_CONTEXT, "");
+       return ret;
+
+}
+#define eglGetProcAddress _eglGetProcAddress
+
+#undef _GL2_MACRO_H_
+#undef _GL_MACRO_H_
diff --git a/probe_graphics/da_gles20_tizen.cpp b/probe_graphics/da_gles20_tizen.cpp
new file mode 100644 (file)
index 0000000..251c69f
--- /dev/null
@@ -0,0 +1,1619 @@
+/*
+ *  DA probe
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ *
+ * Sanghyun Lee <sanghyunnim.lee@samsung.com>
+ * Juyoung Kim <j0.kim@samsung.com>
+ * Vitaliy Cherepanov <v.cherepanov@samsung.com>
+ *
+ * This library is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, write to the Free Software Foundation, Inc., 51
+ * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Contributors:
+ * - S-Core Co., Ltd
+ * - Samsung RnD Institute Russia
+ *
+ */
+
+#include "da_gles20.h"
+#include "daprobe.h"
+#include "binproto.h"
+
+static char contextValue[256];
+static enum DaOptions _sopt = OPT_GLES;
+
+// ==================================================================
+// A 2
+// ==================================================================
+
+void glActiveTexture(GLenum texture) {
+       typedef void (*methodType)(GLenum);
+       BEFORE(glActiveTexture);
+       glActiveTexturep(texture);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x",
+             (uint64_t)(texture));
+}
+
+void glAttachShader(GLuint program, GLuint shader) {
+       typedef void (*methodType)(GLuint, GLuint);
+       BEFORE(glAttachShader);
+       glAttachShaderp(program, shader);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dd",
+                       program, shader);
+}
+
+// ==================================================================
+// B 12
+// ==================================================================
+
+void glBindAttribLocation(GLuint program, GLuint index, const char *name) {
+       typedef void (*methodType)(GLuint, GLuint, const char *);
+       BEFORE(glBindAttribLocation);
+       glBindAttribLocationp(program, index, name);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dds",
+                       program, index, name);
+}
+
+void glBindBuffer(GLenum target, GLuint buffer) {
+       typedef void (*methodType)(GLenum, GLuint);
+       BEFORE(glBindBuffer);
+       glBindBufferp(target, buffer);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xd",
+             (uint64_t)(target), buffer);
+}
+
+void glBindFramebuffer(GLenum target, GLuint framebuffer) {
+       typedef void (*methodType)(GLenum, GLuint);
+       BEFORE(glBindFramebuffer);
+       glBindFramebufferp(target, framebuffer);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xd",
+             (uint64_t)(target), framebuffer);
+}
+
+void glBindRenderbuffer(GLenum target, GLuint renderbuffer) {
+       typedef void (*methodType)(GLenum, GLuint);
+       BEFORE(glBindRenderbuffer);
+       glBindRenderbufferp(target, renderbuffer);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xd",
+             (uint64_t)(target), renderbuffer);
+}
+
+void glBindTexture(GLenum target, GLuint texture) {
+       typedef void (*methodType)(GLenum, GLuint);
+       BEFORE(glBindTexture);
+       glBindTexturep(target, texture);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xd",
+             (uint64_t)(target), texture);
+}
+
+void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) {
+       typedef void (*methodType)(GLclampf, GLclampf, GLclampf, GLclampf);
+       BEFORE(glBlendColor);
+       glBlendColorp(red, green, blue, alpha);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ffff",
+                       red, green, blue, alpha);
+}
+
+void glBlendEquation(GLenum mode) {
+       typedef void (*methodType)(GLenum);
+       BEFORE(glBlendEquation);
+       glBlendEquationp(mode);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x",
+             (uint64_t)(mode));
+}
+
+void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) {
+       typedef void (*methodType)(GLenum, GLenum);
+       BEFORE(glBlendEquationSeparate);
+       glBlendEquationSeparatep(modeRGB, modeAlpha);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xx",
+             (uint64_t)(modeRGB), (uint64_t)(modeAlpha));
+}
+
+void glBlendFunc(GLenum sfactor, GLenum dfactor) {
+       typedef void (*methodType)(GLenum, GLenum);
+       BEFORE(glBlendFunc);
+       glBlendFuncp(sfactor, dfactor);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xx",
+             (uint64_t)(sfactor), (uint64_t)(dfactor));
+}
+
+void glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha,
+               GLenum dstAlpha) {
+       typedef void (*methodType)(GLenum, GLenum, GLenum, GLenum);
+       BEFORE(glBlendFuncSeparate);
+       glBlendFuncSeparatep(srcRGB, dstRGB, srcAlpha, dstAlpha);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxxx",
+             (uint64_t)(srcRGB), (uint64_t)(dstRGB),
+             (uint64_t)(srcAlpha), (uint64_t)(dstAlpha));
+}
+
+void glBufferData(GLenum target, GLsizeiptr size, const GLvoid * data,
+               GLenum usage) {
+       typedef void (*methodType)(GLenum, GLsizeiptr, const GLvoid *, GLenum);
+       BEFORE(glBufferData);
+       glBufferDatap(target, size, data, usage);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxpx",
+             (uint64_t)(target), (uint64_t)(size),
+             voidp_to_uint64(data), (uint64_t)(usage));
+}
+
+void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size,
+               const GLvoid * data) {
+       typedef void (*methodType)(GLenum, GLintptr, GLsizeiptr, const GLvoid *);
+       BEFORE(glBufferSubData);
+       glBufferSubDatap(target, offset, size, data);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxxp",
+             (uint64_t)(target), (uint64_t)(offset),
+             (uint64_t)(size), voidp_to_uint64(data));
+}
+
+// ==================================================================
+// C 14
+// ==================================================================
+
+GLenum glCheckFramebufferStatus(GLenum target) {
+       typedef GLenum (*methodType)(GLenum);
+       BEFORE(glCheckFramebufferStatus);
+       GLenum ret = glCheckFramebufferStatusp(target);
+       error = glGetError();
+       AFTER('d', ret, APITYPE_CONTEXT, "", "x",
+             (uint64_t)(target));
+
+       return ret;
+}
+
+void glClear(GLbitfield mask) {
+       typedef void (*methodType)(GLbitfield);
+       BEFORE(glClear);
+       glClearp(mask);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x",
+             (uint64_t)(mask));
+}
+
+void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) {
+       typedef void (*methodType)(GLclampf, GLclampf, GLclampf, GLclampf);
+       BEFORE(glClearColor);
+       glClearColorp(red, green, blue, alpha);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ffff",
+                       red, green, blue, alpha);
+}
+
+void glClearDepthf(GLclampf depth) {
+       typedef void (*methodType)(GLclampf);
+       BEFORE(glClearDepthf);
+       glClearDepthfp(depth);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "f", depth);
+}
+
+void glClearStencil(GLint s) {
+       typedef void (*methodType)(GLint);
+       BEFORE(glClearStencil);
+       glClearStencilp(s);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "d", s);
+}
+
+void glColorMask(GLboolean red, GLboolean green, GLboolean blue,
+               GLboolean alpha) {
+       typedef void (*methodType)(GLboolean, GLboolean, GLboolean, GLboolean);
+       BEFORE(glColorMask);
+       glColorMaskp(red, green, blue, alpha);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dddd",
+                       red, green, blue, alpha);
+}
+
+void glCompileShader(GLuint shader) {
+       typedef void (*methodType)(GLuint);
+       BEFORE(glCompileShader);
+       glCompileShaderp(shader);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(shader));
+}
+
+void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat,
+               GLsizei width, GLsizei height, GLint border, GLsizei imageSize,
+               const GLvoid * data) {
+       typedef void (*methodType)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint,
+                       GLsizei, const GLvoid *);
+       BEFORE(glCompressedTexImage2D);
+       glCompressedTexImage2Dp(target, level, internalformat, width, height,
+                       border, imageSize, data);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xdxddddp",
+             (uint64_t)(target), level,
+             (uint64_t)(internalformat), width, height, border, imageSize,
+             voidp_to_uint64(data));
+}
+
+void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset,
+               GLint yoffset, GLsizei width, GLsizei height, GLenum format,
+               GLsizei imageSize, const GLvoid * data) {
+       typedef void (*methodType)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei,
+                       GLenum, GLsizei, const GLvoid *);
+       BEFORE(glCompressedTexSubImage2D);
+       glCompressedTexSubImage2Dp(target, level, xoffset, yoffset, width, height,
+                       format, imageSize, data);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xdddddxdp",
+             (uint64_t)(target), level, xoffset, yoffset, width, height,
+             (uint64_t)(format), imageSize, voidp_to_uint64(data));
+}
+
+void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat,
+               GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {
+       typedef void (*methodType)(GLenum, GLint, GLenum, GLint, GLint, GLsizei,
+                       GLsizei, GLint);
+       BEFORE(glCopyTexImage2D);
+       glCopyTexImage2Dp(target, level, internalformat, x, y, width, height,
+                       border);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xdxddddd",
+             (uint64_t)(target), level,
+             (uint64_t)(internalformat), x, y, width, height, border);
+}
+
+void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset,
+               GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
+       typedef void (*methodType)(GLenum, GLint, GLint, GLint, GLint, GLint,
+                       GLsizei, GLsizei);
+       BEFORE(glCopyTexSubImage2D);
+       glCopyTexSubImage2Dp(target, level, xoffset, yoffset, x, y, width, height);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xddddddd",
+             (uint64_t)(target), level, xoffset, yoffset, x, y, width,
+             height);
+}
+
+GLuint glCreateProgram(void) {
+       typedef GLuint (*methodType)(void);
+       BEFORE(glCreateProgram);
+       GLuint ret = glCreateProgramp();
+       error = glGetError();
+       AFTER_NO_PARAM('d', ret, APITYPE_CONTEXT, "");
+
+       return ret;
+}
+
+GLuint glCreateShader(GLenum shaderType) {
+       typedef GLuint (*methodType)(GLenum);
+       BEFORE(glCreateShader);
+       GLuint ret = glCreateShaderp(shaderType);
+       error = glGetError();
+       AFTER('d', ret, APITYPE_CONTEXT, "", "x", (uint64_t)(shaderType));
+
+       return ret;
+}
+
+void glCullFace(GLenum mode) {
+       typedef void (*methodType)(GLenum);
+       BEFORE(glCullFace);
+       glCullFacep(mode);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(mode));
+}
+
+// ==================================================================
+// D 14
+// ==================================================================
+
+void glDeleteBuffers(GLsizei n, const GLuint * buffers) {
+       typedef void (*methodType)(GLsizei, const GLuint *);
+       BEFORE(glDeleteBuffers);
+       glDeleteBuffersp(n, buffers);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dp",
+             n, voidp_to_uint64(buffers));
+}
+
+void glDeleteFramebuffers(GLsizei n, const GLuint * framebuffers) {
+       typedef void (*methodType)(GLsizei, const GLuint *);
+       BEFORE(glDeleteFramebuffers);
+       glDeleteFramebuffersp(n, framebuffers);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dp",
+             n, voidp_to_uint64(framebuffers));
+}
+
+void glDeleteProgram(GLuint program) {
+       typedef void (*methodType)(GLuint);
+       BEFORE(glDeleteProgram);
+       glDeleteProgramp(program);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "d",
+                       program);
+}
+
+void glDeleteRenderbuffers(GLsizei n, const GLuint * renderbuffers) {
+       typedef void (*methodType)(GLsizei, const GLuint *);
+       BEFORE(glDeleteRenderbuffers);
+       glDeleteRenderbuffersp(n, renderbuffers);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dp",
+             n, voidp_to_uint64(renderbuffers));
+}
+
+void glDeleteShader(GLuint shader) {
+       typedef void (*methodType)(GLuint);
+       BEFORE(glDeleteShader);
+       glDeleteShaderp(shader);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "d", shader);
+}
+
+void glDeleteTextures(GLsizei n, const GLuint * textures) {
+       typedef void (*methodType)(GLsizei, const GLuint *);
+       BEFORE(glDeleteTextures);
+       glDeleteTexturesp(n, textures);
+       error = glGetError();
+       if (error == GL_NO_ERROR) {
+               char buf[128] = "";
+               int bufP = 0;
+               for (int i = 0; i < n; i++) {
+                       bufP += sprintf(buf + bufP, "%u", textures[i]);
+                       if (i != n - 1) {
+                               bufP += sprintf(buf + bufP, ",");
+                       }
+               }
+               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, buf, "dp",
+                     n, voidp_to_uint64(textures));
+       } else {
+               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dp",
+                     n, voidp_to_uint64(textures));
+       }
+}
+
+void glDepthFunc(GLenum func) {
+       typedef void (*methodType)(GLenum);
+       BEFORE(glDepthFunc);
+       glDepthFuncp(func);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(func));
+}
+
+void glDepthMask(GLboolean flag) {
+       typedef void (*methodType)(GLboolean);
+       BEFORE(glDepthMask);
+       glDepthMaskp(flag);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(flag));
+}
+
+void glDepthRangef(GLclampf nearVal, GLclampf farVal) {
+       typedef void (*methodType)(GLclampf, GLclampf);
+       BEFORE(glDepthRangef);
+       glDepthRangefp(nearVal, farVal);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ff",
+                       nearVal, farVal);
+}
+
+void glDetachShader(GLuint program, GLuint shader) {
+       typedef void (*methodType)(GLuint, GLuint);
+       BEFORE(glDetachShader);
+       glDetachShaderp(program, shader);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dd",
+                       program, shader);
+}
+
+void glDisable(GLenum cap) {
+       typedef void (*methodType)(GLenum);
+       BEFORE(glDisable);
+       glDisablep(cap);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(cap));
+}
+
+void glDisableVertexAttribArray(GLuint index) {
+       typedef void (*methodType)(GLuint);
+       BEFORE(glDisableVertexAttribArray);
+       glDisableVertexAttribArrayp(index);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "d", index);
+}
+
+void glDrawArrays(GLenum mode, GLint first, GLsizei count) {
+       typedef void (*methodType)(GLenum, GLint, GLsizei);
+       BEFORE(glDrawArrays);
+       glDrawArraysp(mode, first, count);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xdd",
+             (uint64_t)(mode), first, count);
+}
+
+void glDrawElements(GLenum mode, GLsizei count, GLenum type,
+               const GLvoid * indices) {
+       typedef void (*methodType)(GLenum, GLsizei, GLenum, const GLvoid *);
+       BEFORE(glDrawElements);
+       glDrawElementsp(mode, count, type, indices);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xdxp",
+             (uint64_t)(mode), count, (uint64_t)(type), indices);
+}
+
+// ==================================================================
+// E 2
+// ==================================================================
+
+void glEnable(GLenum cap) {
+       typedef void (*methodType)(GLenum);
+       BEFORE(glEnable);
+       glEnablep(cap);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(cap));
+}
+
+void glEnableVertexAttribArray(GLuint index) {
+       typedef void (*methodType)(GLuint);
+       BEFORE(glEnableVertexAttribArray);
+       glEnableVertexAttribArrayp(index);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "d", index);
+}
+
+// ==================================================================
+// F 5
+// ==================================================================
+
+void glFinish(void) {
+       typedef void (*methodType)(void);
+       BEFORE(glFinish);
+       glFinishp();
+       error = glGetError();
+       AFTER_NO_PARAM('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "");
+}
+
+void glFlush(void) {
+       typedef void (*methodType)(void);
+       BEFORE(glFlush);
+       glFlushp();
+       error = glGetError();
+       AFTER_NO_PARAM('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "");
+}
+
+void glFramebufferRenderbuffer(GLenum target, GLenum attachment,
+               GLenum renderbuffertarget, GLuint renderbuffer) {
+       typedef void (*methodType)(GLenum, GLenum, GLenum, GLuint);
+       BEFORE(glFramebufferRenderbuffer);
+       glFramebufferRenderbufferp(target, attachment, renderbuffertarget,
+                       renderbuffer);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxxd",
+             (uint64_t)(target), (uint64_t)(attachment),
+             (uint64_t)(renderbuffertarget), renderbuffer);
+}
+
+void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget,
+               GLuint texture, GLint level) {
+       typedef void (*methodType)(GLenum, GLenum, GLenum, GLuint, GLint);
+       BEFORE(glFramebufferTexture2D);
+       glFramebufferTexture2Dp(target, attachment, textarget, texture, level);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxxdd",
+             (uint64_t)(target), (uint64_t)(attachment),
+             (uint64_t)(textarget), texture, level);
+}
+
+void glFrontFace(GLenum mode) {
+       typedef void (*methodType)(GLenum);
+       BEFORE(glFrontFace);
+       glFrontFacep(mode);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x",
+             (uint64_t)(mode));
+}
+
+// ==================================================================
+// G 31
+// ==================================================================
+
+void glGenBuffers(GLsizei n, GLuint * buffers) {
+       typedef void (*methodType)(GLsizei, GLuint *);
+       BEFORE(glGenBuffers);
+       glGenBuffersp(n, buffers);
+       error = glGetError();
+       if (error == GL_NO_ERROR) {
+               char buf[128] = "";
+               int bufP = 0;
+               for (int i = 0; i < n; i++) {
+                       bufP += sprintf(buf + bufP, "%u", buffers[i]);
+                       if (i != n - 1) {
+                               bufP += sprintf(buf + bufP, ",");
+                       }
+               }
+               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, buf, "dp",
+                     n, voidp_to_uint64(buffers));
+       } else {
+               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dp",
+                     n, voidp_to_uint64(buffers));
+       }
+}
+
+void glGenFramebuffers(GLsizei n, GLuint * framebuffers) {
+       typedef void (*methodType)(GLsizei, GLuint *);
+       BEFORE(glGenFramebuffers);
+       glGenFramebuffersp(n, framebuffers);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dp",
+             n, voidp_to_uint64(framebuffers));
+}
+
+void glGenRenderbuffers(GLsizei n, GLuint * renderbuffers) {
+       typedef void (*methodType)(GLsizei, GLuint *);
+       BEFORE(glGenRenderbuffers);
+       glGenRenderbuffersp(n, renderbuffers);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dp",
+             n, voidp_to_uint64(renderbuffers));
+}
+
+void glGenTextures(GLsizei n, GLuint * textures) {
+       typedef void (*methodType)(GLsizei, GLuint *);
+       BEFORE(glGenTextures);
+       glGenTexturesp(n, textures);
+       error = glGetError();
+       if (error == GL_NO_ERROR) {
+               char buf[128] = "";
+               int bufP = 0;
+               for (int i = 0; i < n; i++) {
+                       bufP += sprintf(buf + bufP, "%u", textures[i]);
+                       if (i != n - 1) {
+                               bufP += sprintf(buf + bufP, ",");
+                       }
+               }
+               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, buf, "dp",
+                     n, voidp_to_uint64(textures));
+       } else {
+               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dp",
+                     n, voidp_to_uint64(textures));
+       }
+}
+
+void glGenerateMipmap(GLenum target) {
+       typedef void (*methodType)(GLenum);
+       BEFORE(glGenerateMipmap);
+       glGenerateMipmapp(target);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(target));
+}
+
+//lsh_get
+void glGetBooleanv(GLenum pname, GLboolean * params) {
+       typedef void (*methodType)(GLenum, GLboolean *);
+       BEFORE(glGetBooleanv);
+       glGetBooleanvp(pname, params);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(pname));
+}
+
+//lsh_get
+void glGetFloatv(GLenum pname, GLfloat * params) {
+       typedef void (*methodType)(GLenum, GLfloat *);
+       BEFORE(glGetFloatv);
+       glGetFloatvp(pname, params);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(pname));
+}
+
+//lsh_get
+void glGetIntegerv(GLenum pname, GLint * params) {
+       typedef void (*methodType)(GLenum, GLint *);
+       BEFORE(glGetIntegerv);
+       glGetIntegervp(pname, params);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "x", (uint64_t)(pname));
+}
+
+//lsh_get
+void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize,
+               GLsizei *length, GLint *size, GLenum *type, char *name) {
+       typedef void (*methodType)(GLuint, GLuint, GLsizei, GLsizei *, GLint *,
+                       GLenum *, char *);
+       BEFORE(glGetActiveAttrib);
+       glGetActiveAttribp(program, index, bufSize, length, size, type, name);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddd",
+                       program, index, bufSize);
+}
+
+//lsh_get
+void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufSize,
+               GLsizei *length, GLint *size, GLenum *type, char *name) {
+       typedef void (*methodType)(GLuint, GLuint, GLsizei, GLsizei *, GLint *,
+                       GLenum *, char *);
+       BEFORE(glGetActiveUniform);
+       glGetActiveUniformp(program, index, bufSize, length, size, type, name);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddd",
+                       program, index, bufSize);
+}
+
+//lsh_get
+void glGetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei *count,
+               GLuint *shaders) {
+       typedef void (*methodType)(GLuint, GLsizei, GLsizei *, GLuint *);
+       BEFORE(glGetAttachedShaders);
+       glGetAttachedShadersp(program, maxCount, count, shaders);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dd",
+                       program, maxCount);
+}
+
+//lsh_get
+int glGetAttribLocation(GLuint program, const char* name)
+{
+       typedef int (*methodType)(GLuint , const char*);
+       BEFORE(glGetAttribLocation);
+       int ret = glGetAttribLocationp(program, name);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xs",
+             (uint64_t)(program), name);
+       return ret;
+}
+
+//lsh_get
+void glGetBufferParameteriv(GLenum target, GLenum value, GLint * data) {
+       typedef void (*methodType)(GLenum, GLenum, GLint *);
+       BEFORE(glGetBufferParameteriv);
+       glGetBufferParameterivp(target, value, data);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xx",
+             (uint64_t)(target), (uint64_t)(value));
+}
+
+GLenum glGetError(void) {
+       typedef GLenum (*methodType)(void);
+       BEFORE(glGetError);
+       GLenum ret = glGetErrorp();
+//     error = glGetError();
+       AFTER_NO_PARAM('d', ret, APITYPE_CONTEXT, "");
+
+       return ret;
+}
+
+//lsh_get
+void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment,
+               GLenum pname, GLint * params) {
+       typedef void (*methodType)(GLenum, GLenum, GLenum, GLint *);
+       BEFORE(glGetFramebufferAttachmentParameteriv);
+       glGetFramebufferAttachmentParameterivp(target, attachment, pname, params);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxx",
+             (uint64_t)(target), (uint64_t)(attachment),
+             (uint64_t)(pname));
+}
+
+//lsh_get
+void glGetProgramInfoLog(GLuint program, GLsizei maxLength, GLsizei *length,
+               char *infoLog) {
+       typedef void (*methodType)(GLuint, GLsizei, GLsizei *, char *);
+       BEFORE(glGetProgramInfoLog);
+       glGetProgramInfoLogp(program, maxLength, length, infoLog);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dd",
+                       program, maxLength);
+}
+
+//lsh_get
+void glGetProgramiv(GLuint program, GLenum pname, GLint *params) {
+       typedef void (*methodType)(GLuint, GLenum, GLint *);
+       BEFORE(glGetProgramiv);
+       glGetProgramivp(program, pname, params);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dx",
+             program, (uint64_t)(pname));
+}
+
+//lsh_get
+void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params) {
+       typedef void (*methodType)(GLenum, GLenum, GLint *);
+       BEFORE(glGetRenderbufferParameteriv);
+       glGetRenderbufferParameterivp(target, pname, params);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xx",
+             (uint64_t)(target), (uint64_t)(pname));
+}
+
+//lsh_get
+void glGetShaderInfoLog(GLuint shader, GLsizei maxLength, GLsizei *length,
+               char *infoLog) {
+       typedef void (*methodType)(GLuint, GLsizei, GLsizei *, char *);
+       BEFORE(glGetShaderInfoLog);
+       glGetShaderInfoLogp(shader, maxLength, length, infoLog);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dd",
+                       shader, maxLength);
+}
+
+//lsh_get
+void glGetShaderPrecisionFormat(GLenum shaderType, GLenum precisionType,
+               GLint *range, GLint *precision) {
+       typedef void (*methodType)(GLenum, GLenum, GLint *, GLint *);
+       BEFORE(glGetShaderPrecisionFormat);
+       glGetShaderPrecisionFormatp(shaderType, precisionType, range, precision);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xx",
+             (uint64_t)(shaderType), (uint64_t)(precisionType));
+}
+
+//lsh_get
+void glGetShaderSource(GLuint shader, GLsizei bufSize, GLsizei *length,
+               char *source) {
+       typedef void (*methodType)(GLuint, GLsizei, GLsizei *, char *);
+       BEFORE(glGetShaderSource);
+       glGetShaderSourcep(shader, bufSize, length, source);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dd",
+                       shader, bufSize);
+}
+
+//lsh_get
+void glGetShaderiv(GLuint shader, GLenum pname, GLint *params) {
+       typedef void (*methodType)(GLuint, GLenum, GLint *);
+       BEFORE(glGetShaderiv);
+       glGetShaderivp(shader, pname, params);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dx",
+             shader, (uint64_t)(pname));
+}
+
+const GLubyte* glGetString(GLenum name) {
+       typedef const GLubyte* (*methodType)(GLenum);
+       BEFORE(glGetString);
+       const GLubyte* ret = glGetStringp(name);
+       error = glGetError();
+       AFTER('p', ret, APITYPE_CONTEXT, "", "x", (uint64_t)(name));
+
+       return ret;
+}
+
+//lsh_get
+void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat * params) {
+       typedef void (*methodType)(GLenum, GLenum, GLfloat *);
+       BEFORE(glGetTexParameterfv);
+       glGetTexParameterfvp(target, pname, params);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xx",
+             (uint64_t)(target), (uint64_t)(pname));
+}
+
+//lsh_get
+void glGetTexParameteriv(GLenum target, GLenum pname, GLint * params) {
+       typedef void (*methodType)(GLenum, GLenum, GLint *);
+       BEFORE(glGetTexParameteriv);
+       glGetTexParameterivp(target, pname, params);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xx",
+             (uint64_t)(target), (uint64_t)(pname));
+}
+
+//lsh_get
+void glGetUniformfv(GLuint program, GLint location, GLfloat *params) {
+       typedef void (*methodType)(GLuint, GLuint, GLfloat *);
+       BEFORE(glGetUniformfv);
+       glGetUniformfvp(program, location, params);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dd",
+                       program, location);
+}
+
+//lsh_get
+void glGetUniformiv(GLuint program, GLint location, GLint *params) {
+       typedef void (*methodType)(GLuint, GLuint, GLint *);
+       BEFORE(glGetUniformiv);
+       glGetUniformivp(program, location, params);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dd",
+                       program, location);
+}
+
+//lsh_get
+GLint glGetUniformLocation(GLuint program, const char *name) {
+       typedef GLint (*methodType)(GLuint, const char *);
+       BEFORE(glGetUniformLocation);
+       GLint ret = glGetUniformLocationp(program, name);
+       error = glGetError();
+       AFTER('d', ret, APITYPE_CONTEXT, "", "d", program);
+
+       return ret;
+}
+
+//lsh_get
+void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params) {
+       typedef void (*methodType)(GLuint, GLenum, GLfloat *);
+       BEFORE(glGetVertexAttribfv);
+       glGetVertexAttribfvp(index, pname, params);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dx",
+             index, (uint64_t)(pname));
+}
+
+//lsh_get
+void glGetVertexAttribiv(GLuint index, GLenum pname, GLint *params) {
+       typedef void (*methodType)(GLuint, GLenum, GLint *);
+       BEFORE(glGetVertexAttribiv);
+       glGetVertexAttribivp(index, pname, params);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dx",
+             index, (uint64_t)(pname));
+}
+
+//lsh_get
+void glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid **pointer) {
+       typedef void (*methodType)(GLuint, GLenum, GLvoid **);
+       BEFORE(glGetVertexAttribPointerv);
+       glGetVertexAttribPointervp(index, pname, pointer);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dx",
+             index, (uint64_t)(pname));
+}
+
+// ==================================================================
+// H 1
+// ==================================================================
+
+void glHint(GLenum target, GLenum mode) {
+       typedef void (*methodType)(GLenum, GLenum);
+       BEFORE(glHint);
+       glHintp(target, mode);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xx",
+             (uint64_t)(target), (uint64_t)(mode));
+}
+
+// ==================================================================
+// I 7
+// ==================================================================
+
+GLboolean glIsBuffer(GLuint buffer) {
+       typedef GLboolean (*methodType)(GLuint);
+       BEFORE(glIsBuffer);
+       GLboolean ret = glIsBufferp(buffer);
+       error = glGetError();
+       AFTER('c', ret, APITYPE_CONTEXT, "", "d", buffer);
+
+       return ret;
+}
+
+GLboolean glIsEnabled(GLenum cap) {
+       typedef GLboolean (*methodType)(GLenum);
+       BEFORE(glIsEnabled);
+       GLboolean ret = glIsEnabledp(cap);
+       error = glGetError();
+       AFTER('c', ret, APITYPE_CONTEXT, "", "x", (uint64_t)(cap));
+
+       return ret;
+}
+
+GLboolean glIsFramebuffer(GLuint framebuffer) {
+       typedef GLboolean (*methodType)(GLuint);
+       BEFORE(glIsFramebuffer);
+       GLboolean ret = glIsFramebufferp(framebuffer);
+       error = glGetError();
+       AFTER('c', ret, APITYPE_CONTEXT, "", "d", framebuffer);
+
+       return ret;
+}
+
+GLboolean glIsProgram(GLuint program) {
+       typedef GLboolean (*methodType)(GLuint);
+       BEFORE(glIsProgram);
+       GLboolean ret = glIsProgramp(program);
+       error = glGetError();
+       AFTER('c', ret, APITYPE_CONTEXT, "", "d", program);
+
+       return ret;
+}
+
+GLboolean glIsRenderbuffer(GLuint renderbuffer) {
+       typedef GLboolean (*methodType)(GLuint);
+       BEFORE(glIsRenderbuffer);
+       GLboolean ret = glIsRenderbufferp(renderbuffer);
+       error = glGetError();
+       AFTER('c', ret, APITYPE_CONTEXT, "", "d", renderbuffer);
+
+       return ret;
+}
+
+GLboolean glIsShader(GLuint shader) {
+       typedef GLboolean (*methodType)(GLuint);
+       BEFORE(glIsShader);
+       GLboolean ret = glIsShaderp(shader);
+       error = glGetError();
+       AFTER('c', ret, APITYPE_CONTEXT, "", "d", shader);
+
+       return ret;
+}
+
+GLboolean glIsTexture(GLuint texture) {
+       typedef GLboolean (*methodType)(GLuint);
+       BEFORE(glIsTexture);
+       GLboolean ret = glIsTexturep(texture);
+       error = glGetError();
+       AFTER('c', ret, APITYPE_CONTEXT, "", "d", texture);
+
+       return ret;
+}
+
+// ==================================================================
+// L 2
+// ==================================================================
+
+void glLineWidth(GLfloat width) {
+       typedef void (*methodType)(GLfloat);
+       BEFORE(glLineWidth);
+       glLineWidthp(width);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "f", width);
+}
+
+void glLinkProgram(GLuint program) {
+       typedef void (*methodType)(GLuint);
+       BEFORE(glLinkProgram);
+       glLinkProgramp(program);
+       error = glGetError();
+       char buf[512] = "";
+       if (error == GL_NO_ERROR) {
+               int bufP = 0;
+               GLint activeNum[1];
+               GLint maxLength[1];
+               glGetProgramiv(program, GL_ACTIVE_ATTRIBUTES, activeNum);
+               glGetProgramiv(program, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, maxLength);
+               bufP += sprintf(buf + bufP, "%d", activeNum[0]);
+               for (int i = 0; i < activeNum[0]; i++) {
+                       GLsizei length[1];
+                       GLint size[1];
+                       GLenum type[1];
+                       char name[maxLength[0]];
+                       glGetActiveAttrib(program, i, maxLength[0], length, size, type,
+                                       name);
+                       bufP += sprintf(buf + bufP, ",%d,%s,%d,%x", i, name, size[0],
+                                       type[0]);
+               }
+
+               glGetProgramiv(program, GL_ACTIVE_UNIFORMS, activeNum);
+               glGetProgramiv(program, GL_ACTIVE_UNIFORM_MAX_LENGTH, maxLength);
+               bufP += sprintf(buf + bufP, ",%d", activeNum[0]);
+               for (int i = 0; i < activeNum[0]; i++) {
+                       GLsizei length[1];
+                       GLint size[1];
+                       GLenum type[1];
+                       char name[maxLength[0]];
+                       glGetActiveUniform(program, i, maxLength[0], length, size, type,
+                                       name);
+                       bufP += sprintf(buf + bufP, ",%d,%s,%d,%x", i, name, size[0],
+                                       type[0]);
+               }
+       }
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, buf, "d",
+                       program);
+}
+
+// ==================================================================
+// P 2
+// ==================================================================
+
+void glPixelStorei(GLenum pname, GLint param) {
+       typedef void (*methodType)(GLenum, GLint);
+       BEFORE(glPixelStorei);
+       glPixelStoreip(pname, param);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xd",
+             (uint64_t)(pname), param);
+}
+
+void glPolygonOffset(GLfloat factor, GLfloat units) {
+       typedef void (*methodType)(GLfloat, GLfloat);
+       BEFORE(glPolygonOffset);
+       glPolygonOffsetp(factor, units);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ff",
+                       factor, units);
+}
+
+// ==================================================================
+// R 3
+// ==================================================================
+
+//lsh_get
+void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height,
+               GLenum format, GLenum type, GLvoid * data) {
+       typedef void (*methodType)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum,
+                       GLvoid *);
+       BEFORE(glReadPixels);
+       glReadPixelsp(x, y, width, height, format, type, data);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "",
+             "ddddxx", x, y, width, height,
+             (uint64_t)(format), (uint64_t)(type));
+}
+
+void glReleaseShaderCompiler(void) {
+       typedef void (*methodType)(void);
+       BEFORE(glReleaseShaderCompiler);
+       glReleaseShaderCompilerp();
+       error = glGetError();
+       AFTER_NO_PARAM('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "");
+}
+
+void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width,
+               GLsizei height) {
+       typedef void (*methodType)(GLenum, GLenum, GLsizei, GLsizei);
+       BEFORE(glRenderbufferStorage);
+       glRenderbufferStoragep(target, internalformat, width, height);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxdd",
+             (uint64_t)(target), (uint64_t)(internalformat),
+             width, height);
+}
+
+// ==================================================================
+// S 10
+// ==================================================================
+
+void glSampleCoverage(GLclampf value, GLboolean invert) {
+       typedef void (*methodType)(GLclampf, GLboolean);
+       BEFORE(glSampleCoverage);
+       glSampleCoveragep(value, invert);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "fx",
+                       value, (uint64_t)(invert));
+}
+
+void glScissor(GLint x, GLint y, GLsizei width, GLsizei height) {
+       typedef void (*methodType)(GLint, GLint, GLsizei, GLsizei);
+       BEFORE(glScissor);
+       glScissorp(x, y, width, height);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dddd",
+                       x, y, width, height);
+}
+
+//lsh_param
+void glShaderBinary(GLsizei n, const GLuint *shaders, GLenum binaryformat,
+               const void *binary, GLsizei length) {
+       typedef void (*methodType)(GLsizei, const GLuint *, GLenum, const void *,
+                       GLsizei);
+       BEFORE(glShaderBinary);
+       glShaderBinaryp(n, shaders, binaryformat, binary, length);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "",
+             "dpxpd", n, voidp_to_uint64(shaders),
+             (uint64_t)(binaryformat), voidp_to_uint64(binary), length);
+}
+
+//lsh_param
+void glShaderSource(GLuint shader, GLsizei count, const char** string,
+               const GLint* length) {
+       typedef void (*methodType)(GLuint, GLsizei, const char**, const GLint*);
+       BEFORE(glShaderSource);
+       glShaderSourcep(shader, count, string, length);
+       error = glGetError();
+       if (error == GL_NO_ERROR) {
+               GLint length[1];
+               glGetShaderiv(shader, GL_SHADER_SOURCE_LENGTH, length);
+               char buf[length[0]];
+               glGetShaderSource(shader, length[0], NULL, buf);
+               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, buf,
+                     "ddpp", shader, count,
+                     voidp_to_uint64(string), voidp_to_uint64(length));
+       } else {
+               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "",
+                     "ddpp", shader, count,
+                     voidp_to_uint64(string), voidp_to_uint64(length));
+       }
+}
+
+void glStencilFunc(GLenum func, GLint ref, GLuint mask) {
+       typedef void (*methodType)(GLenum, GLint, GLint);
+       BEFORE(glStencilFunc);
+       glStencilFuncp(func, ref, mask);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xdd",
+             (uint64_t)(func), ref, mask);
+}
+
+void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) {
+       typedef void (*methodType)(GLenum, GLenum, GLint, GLuint);
+       BEFORE(glStencilFuncSeparate);
+       glStencilFuncSeparatep(face, func, ref, mask);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxdd",
+             (uint64_t)(face), (uint64_t)(func), ref, mask);
+}
+
+void glStencilMask(GLuint mask) {
+       typedef void (*methodType)(GLuint);
+       BEFORE(glStencilMask);
+       glStencilMaskp(mask);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "d", mask);
+}
+
+void glStencilMaskSeparate(GLenum face, GLuint mask) {
+       typedef void (*methodType)(GLenum, GLuint);
+       BEFORE(glStencilMaskSeparate);
+       glStencilMaskSeparatep(face, mask);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xd",
+             (uint64_t)(face), mask);
+}
+
+void glStencilOp(GLenum sfail, GLenum dpfail, GLenum dppass) {
+       typedef void (*methodType)(GLenum, GLenum, GLenum);
+       BEFORE(glStencilOp);
+       glStencilOpp(sfail, dpfail, dppass);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxx",
+             (uint64_t)(sfail), (uint64_t)(dpfail),
+             (uint64_t)(dppass));
+}
+
+void glStencilOpSeparate(GLenum face, GLenum sfail, GLenum dpfail,
+               GLenum dppass) {
+       typedef void (*methodType)(GLenum, GLenum, GLenum, GLenum);
+       BEFORE(glStencilOpSeparate);
+       glStencilOpSeparatep(face, sfail, dpfail, dppass);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxxx",
+             (uint64_t)(face), (uint64_t)(sfail), (uint64_t)(dpfail),
+             (uint64_t)(dppass));
+}
+
+// ==================================================================
+// T 6
+// ==================================================================
+
+void glTexImage2D(GLenum target, GLint level, GLenum internalformat,
+               GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type,
+               const GLvoid *data)
+{
+       typedef void (*methodType)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint,
+                       GLenum, GLenum, const GLvoid *);
+       BEFORE(glTexImage2D);
+       glTexImage2Dp(target, level, internalformat, width, height, border, format,
+                       type, data);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xdddddxxp",
+             (uint64_t)(target), level, internalformat, width, height,
+             border, (uint64_t)(format), (uint64_t)(type),
+             voidp_to_uint64(data));
+}
+
+void glTexParameterf(GLenum target, GLenum pname, GLfloat param) {
+       typedef void (*methodType)(GLenum, GLenum, GLfloat);
+       BEFORE(glTexParameterf);
+       glTexParameterfp(target, pname, param);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxf",
+             (uint64_t)(target), (uint64_t)(pname), param);
+}
+
+void glTexParameterfv(GLenum target, GLenum pname, const GLfloat * params) {
+       typedef void (*methodType)(GLenum, GLenum, const GLfloat *);
+       BEFORE(glTexParameterfv);
+       glTexParameterfvp(target, pname, params);
+       error = glGetError();
+       if(error == GL_NO_ERROR) {
+               char param0[8];
+               sprintf(param0, "%x", (GLenum)params[0]);
+               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, param0, "xxp",
+                     (uint64_t)(target), (uint64_t)(pname),
+                     voidp_to_uint64(params));
+       } else {
+               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxp",
+                     (uint64_t)(target), (uint64_t)(pname),
+                     voidp_to_uint64(params));
+       }
+}
+
+void glTexParameteri(GLenum target, GLenum pname, GLint param) {
+       typedef void (*methodType)(GLenum, GLenum, GLint);
+       BEFORE(glTexParameteri);
+       glTexParameterip(target, pname, param);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxx",
+             (uint64_t)(target), (uint64_t)(pname),
+             (uint64_t)(param));
+}
+
+void glTexParameteriv(GLenum target, GLenum pname, const GLint * params) {
+       typedef void (*methodType)(GLenum, GLenum, const GLint *);
+       BEFORE(glTexParameteriv);
+       glTexParameterivp(target, pname, params);
+       error = glGetError();
+       if(error == GL_NO_ERROR) {
+               char param0[8];
+               sprintf(param0, "%x", (GLenum)params[0]);
+               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, param0, "xxp",
+                     (uint64_t)(target), (uint64_t)(pname),
+                     voidp_to_uint64(params));
+       } else {
+               AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "xxp",
+                     (uint64_t)(target),
+                     (uint64_t)(pname),
+                     voidp_to_uint64(params));
+       }
+}
+
+void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
+               GLsizei width, GLsizei height, GLenum format, GLenum type,
+               const GLvoid * data) {
+       typedef void (*methodType)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei,
+                       GLenum, GLenum, const GLvoid *);
+       BEFORE(glTexSubImage2D);
+       glTexSubImage2Dp(target, level, xoffset, yoffset, width, height, format, type,
+                       data);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "",
+             "xdddddxxp",
+             (uint64_t)(target), level, xoffset, yoffset, width, height,
+             (uint64_t)(format), (uint64_t)(type), voidp_to_uint64(data));
+}
+
+// ==================================================================
+// U 20
+// ==================================================================
+
+void glUniform1f(GLint location, GLfloat v0) {
+       typedef void (*methodType)(GLint, GLfloat);
+       BEFORE(glUniform1f);
+       glUniform1fp(location, v0);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "df",
+                       location, v0);
+}
+
+void glUniform2f(GLint location, GLfloat v0, GLfloat v1) {
+       typedef void (*methodType)(GLint, GLfloat, GLfloat);
+       BEFORE(glUniform2f);
+       glUniform2fp(location, v0, v1);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dff",
+                       location, v0, v1);
+}
+
+void glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) {
+       typedef void (*methodType)(GLint, GLfloat, GLfloat, GLfloat);
+       BEFORE(glUniform3f);
+       glUniform3fp(location, v0, v1, v2);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dfff",
+                       location, v0, v1, v2);
+}
+
+void glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2,
+               GLfloat v3) {
+       typedef void (*methodType)(GLint, GLfloat, GLfloat, GLfloat, GLfloat);
+       BEFORE(glUniform4f);
+       glUniform4fp(location, v0, v1, v2, v3);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "",
+                       "dffff", location, v0, v1, v2, v3);
+}
+
+void glUniform1fv(GLint location, GLsizei count, const GLfloat *value) {
+       typedef void (*methodType)(GLint, GLsizei, const GLfloat *);
+       BEFORE(glUniform1fv);
+       glUniform1fvp(location, count, value);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddp",
+             location, count, voidp_to_uint64(value));
+}
+
+void glUniform2fv(GLint location, GLsizei count, const GLfloat *value) {
+       typedef void (*methodType)(GLint, GLsizei, const GLfloat *);
+       BEFORE(glUniform2fv);
+       glUniform2fvp(location, count, value);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddp",
+             location, count, voidp_to_uint64(value));
+}
+
+void glUniform3fv(GLint location, GLsizei count, const GLfloat *value) {
+       typedef void (*methodType)(GLint, GLsizei, const GLfloat *);
+       BEFORE(glUniform3fv);
+       glUniform3fvp(location, count, value);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddp",
+             location, count, voidp_to_uint64(value));
+}
+
+void glUniform4fv(GLint location, GLsizei count, const GLfloat *value) {
+       typedef void (*methodType)(GLint, GLsizei, const GLfloat *);
+       BEFORE(glUniform4fv);
+       glUniform4fvp(location, count, value);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddp",
+             location, count, voidp_to_uint64(value));
+}
+
+void glUniform1i(GLint location, GLint v0) {
+       typedef void (*methodType)(GLint, GLint);
+       BEFORE(glUniform1i);
+       glUniform1ip(location, v0);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dd",
+                       location, v0);
+}
+
+void glUniform2i(GLint location, GLint v0, GLint v1) {
+       typedef void (*methodType)(GLint, GLint, GLint);
+       BEFORE(glUniform2i);
+       glUniform2ip(location, v0, v1);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddd",
+                       location, v0, v1);
+}
+
+void glUniform3i(GLint location, GLint v0, GLint v1, GLint v2) {
+       typedef void (*methodType)(GLint, GLint, GLint, GLint);
+       BEFORE(glUniform3i);
+       glUniform3ip(location, v0, v1, v2);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dddd",
+                       location, v0, v1, v2);
+}
+
+void glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3) {
+       typedef void (*methodType)(GLint, GLint, GLint, GLint, GLint);
+       BEFORE(glUniform4i);
+       glUniform4ip(location, v0, v1, v2, v3);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "",
+                       "ddddd", location, v0, v1, v2, v3);
+}
+
+void glUniform1iv(GLint location, GLsizei count, const GLint *value) {
+       typedef void (*methodType)(GLint, GLsizei, const GLint *);
+       BEFORE(glUniform1iv);
+       glUniform1ivp(location, count, value);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddp",
+             location, count, voidp_to_uint64(value));
+}
+
+void glUniform2iv(GLint location, GLsizei count, const GLint *value) {
+       typedef void (*methodType)(GLint, GLsizei, const GLint *);
+       BEFORE(glUniform2iv);
+       glUniform2ivp(location, count, value);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddp",
+             location, count, voidp_to_uint64(value));
+}
+
+void glUniform3iv(GLint location, GLsizei count, const GLint *value) {
+       typedef void (*methodType)(GLint, GLsizei, const GLint *);
+       BEFORE(glUniform3iv);
+       glUniform3ivp(location, count, value);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddp",
+             location, count, voidp_to_uint64(value));
+}
+
+void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose,
+               const GLfloat *value) {
+       typedef void (*methodType)(GLint, GLsizei, GLboolean, const GLfloat *);
+       BEFORE(glUniformMatrix2fv);
+       glUniformMatrix2fvp(location, count, transpose, value);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddxp",
+             location, count, (uint64_t)(transpose), voidp_to_uint64(value));
+}
+
+void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose,
+               const GLfloat *value) {
+       typedef void (*methodType)(GLint, GLsizei, GLboolean, const GLfloat *);
+       BEFORE(glUniformMatrix3fv);
+       glUniformMatrix3fvp(location, count, transpose, value);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddxp",
+             location, count, (uint64_t)(transpose), voidp_to_uint64(value));
+}
+
+void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose,
+               const GLfloat *value) {
+       typedef void (*methodType)(GLint, GLsizei, GLboolean, const GLfloat *);
+       BEFORE(glUniformMatrix4fv);
+       glUniformMatrix4fvp(location, count, transpose, value);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddxp",
+             location, count, (uint64_t)(transpose), voidp_to_uint64(value));
+}
+
+void glUniform4iv(GLint location, GLsizei count, const GLint *value) {
+       typedef void (*methodType)(GLint, GLsizei, const GLint *);
+       BEFORE(glUniform4iv);
+       glUniform4ivp(location, count, value);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddp",
+             location, count, voidp_to_uint64(value));
+}
+
+void glUseProgram(GLuint program) {
+       typedef void (*methodType)(GLuint);
+       BEFORE(glUseProgram);
+       glUseProgramp(program);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "d",
+                       program);
+}
+
+// ==================================================================
+// V 7
+// ==================================================================
+
+void glValidateProgram(GLuint program) {
+       typedef void (*methodType)(GLuint);
+       BEFORE(glValidateProgram);
+       glValidateProgramp(program);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "d",
+                       program);
+}
+
+void glVertexAttrib1f(GLuint index, GLfloat v0) {
+       typedef void (*methodType)(GLuint, GLfloat);
+       BEFORE(glVertexAttrib1f);
+       glVertexAttrib1fp(index, v0);
+
+       GLfloat cv[4];
+       glGetVertexAttribfv(index, GL_CURRENT_VERTEX_ATTRIB, cv);
+       sprintf(contextValue, "%f,%f,%f,%f", cv[0], cv[1], cv[2], cv[3]);
+
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, contextValue,
+                       "df", index, v0);
+}
+
+void glVertexAttrib2f(GLuint index, GLfloat v0, GLfloat v1) {
+       typedef void (*methodType)(GLuint, GLfloat, GLfloat);
+       BEFORE(glVertexAttrib2f);
+       glVertexAttrib2fp(index, v0, v1);
+
+       GLfloat cv[4];
+       glGetVertexAttribfv(index, GL_CURRENT_VERTEX_ATTRIB, cv);
+       sprintf(contextValue, "%f,%f,%f,%f", cv[0], cv[1], cv[2], cv[3]);
+
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, contextValue,
+                       "dff", index, v0, v1);
+}
+
+void glVertexAttrib3f(GLuint index, GLfloat v0, GLfloat v1, GLfloat v2) {
+       typedef void (*methodType)(GLuint, GLfloat, GLfloat, GLfloat);
+       BEFORE(glVertexAttrib3f);
+       glVertexAttrib3fp(index, v0, v1, v2);
+
+       GLfloat cv[4];
+       glGetVertexAttribfv(index, GL_CURRENT_VERTEX_ATTRIB, cv);
+       sprintf(contextValue, "%f,%f,%f,%f", cv[0], cv[1], cv[2], cv[3]);
+
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, contextValue,
+                       "dfff", index, v0, v1, v2);
+}
+
+void glVertexAttrib4f(GLuint index, GLfloat v0, GLfloat v1, GLfloat v2,
+               GLfloat v3) {
+       typedef void (*methodType)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
+       BEFORE(glVertexAttrib4f);
+       glVertexAttrib4fp(index, v0, v1, v2, v3);
+
+       GLfloat cv[4];
+       glGetVertexAttribfv(index, GL_CURRENT_VERTEX_ATTRIB, cv);
+       sprintf(contextValue, "%f,%f,%f,%f", cv[0], cv[1], cv[2], cv[3]);
+
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, contextValue,
+                       "dffff", index, v0, v1, v2, v3);
+}
+
+void glVertexAttrib1fv(GLuint index, const GLfloat *v) {
+       typedef void (*methodType)(GLuint, const GLfloat *);
+       BEFORE(glVertexAttrib1fv);
+       glVertexAttrib1fvp(index, v);
+
+       GLfloat cv[4];
+       glGetVertexAttribfv(index, GL_CURRENT_VERTEX_ATTRIB, cv);
+       sprintf(contextValue, "%f,%f,%f,%f", cv[0], cv[1], cv[2], cv[3]);
+
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, contextValue,
+             "dp", index, voidp_to_uint64(v));
+}
+
+void glVertexAttrib2fv(GLuint index, const GLfloat *v) {
+       typedef void (*methodType)(GLuint, const GLfloat *);
+       BEFORE(glVertexAttrib2fv);
+       glVertexAttrib2fvp(index, v);
+
+       GLfloat cv[4];
+       glGetVertexAttribfv(index, GL_CURRENT_VERTEX_ATTRIB, cv);
+       sprintf(contextValue, "%f,%f,%f,%f", cv[0], cv[1], cv[2], cv[3]);
+
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, contextValue,
+             "dp", index, voidp_to_uint64(v));
+}
+
+void glVertexAttrib3fv(GLuint index, const GLfloat *v) {
+       typedef void (*methodType)(GLuint, const GLfloat *);
+       BEFORE(glVertexAttrib3fv);
+       glVertexAttrib3fvp(index, v);
+
+       GLfloat cv[4];
+       glGetVertexAttribfv(index, GL_CURRENT_VERTEX_ATTRIB, cv);
+       sprintf(contextValue, "%f,%f,%f,%f", cv[0], cv[1], cv[2], cv[3]);
+
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, contextValue,
+             "dp", index, voidp_to_uint64(v));
+}
+
+void glVertexAttrib4fv(GLuint index, const GLfloat *v) {
+       typedef void (*methodType)(GLuint, const GLfloat *);
+       BEFORE(glVertexAttrib4fv);
+       glVertexAttrib4fvp(index, v);
+       GLfloat cv[4];
+       glGetVertexAttribfv(index, GL_CURRENT_VERTEX_ATTRIB, cv);
+       sprintf(contextValue, "%f,%f,%f,%f", cv[0], cv[1], cv[2], cv[3]);
+
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, contextValue,
+             "dp", index, voidp_to_uint64(v));
+}
+
+void glVertexAttribPointer(GLuint index, GLint size, GLenum type,
+               GLboolean normalized, GLsizei stride, const GLvoid * pointer) {
+       typedef void (*methodType)(GLuint, GLint, GLenum, GLboolean, GLsizei,
+                       const GLvoid *);
+       BEFORE(glVertexAttribPointer);
+       glVertexAttribPointerp(index, size, type, normalized, stride, pointer);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "ddxxdp",
+             index, size, (uint64_t)(type), (uint64_t)(normalized),
+             stride, voidp_to_uint64(pointer));
+}
+
+void glViewport(GLint x, GLint y, GLsizei width, GLsizei height) {
+       typedef void (*methodType)(GLint, GLint, GLsizei, GLsizei);
+       BEFORE(glViewport);
+       glViewportp(x, y, width, height);
+       error = glGetError();
+       AFTER('v', NO_RETURN_VALUE, APITYPE_CONTEXT, "", "dddd",
+                       x, y, width, height);
+}
index 8db48641ebf4b78d68e40aede93c930274ba1160..54b6a432030c7d65b9b09bf8120800c0a9c39201 100644 (file)
@@ -539,6 +539,7 @@ glIsTexture
 
 _SglSwapBuffers
 eglSwapBuffers
+eglGetProcAddress
 
 _ZN5Tizen3Net7Sockets6Socket10SetSockOptENS1_17NetSocketOptLevelENS1_16NetSocketOptNameEi###Socket::SetSockOpt
 _ZN5Tizen3Net7Sockets6Socket10SetSockOptENS1_17NetSocketOptLevelENS1_16NetSocketOptNameERKNS1_12LingerOptionE###Socket::SetSockOpt