From a9766d6dd672023181215ae55d7c2c0b4936bd71 Mon Sep 17 00:00:00 2001 From: kotofyt Date: Sun, 24 May 2026 02:49:36 +0300 Subject: [PATCH] had to commit cuz i was getting bombed --- engine/build.cpp | 2 +- engine/kotgui.cpp | 31 -- engine/kottui.cpp | 23 ++ external/GameNetworkingSockets | 2 +- external/SDL | 2 +- external/SPIRV-Tools | 1 + external/Vulkan-Headers | 2 +- external/Vulkan-Utility-Libraries | 2 +- external/funnystdlib | 2 +- external/slang | 2 +- external/stb | 2 +- external/volk | 2 +- external/xtool | 2 +- funnyassets/textures/dev/image.png | Bin 0 -> 823259 bytes funnygame.xcodeproj/project.pbxproj | 297 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + game/client/milmobaui/menu.cpp | 0 game/client/milmobaui/menu.h | 0 game/shared/game.h | 4 +- public/kotgui/kotgui.h | 72 ----- public/kottui/kottui.h | 48 +++ utils/Makefile | 2 + 22 files changed, 389 insertions(+), 116 deletions(-) delete mode 100644 engine/kotgui.cpp create mode 100644 engine/kottui.cpp create mode 160000 external/SPIRV-Tools create mode 100644 funnyassets/textures/dev/image.png create mode 100644 funnygame.xcodeproj/project.pbxproj create mode 100644 funnygame.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 game/client/milmobaui/menu.cpp create mode 100644 game/client/milmobaui/menu.h delete mode 100644 public/kotgui/kotgui.h create mode 100644 public/kottui/kottui.h create mode 100644 utils/Makefile diff --git a/engine/build.cpp b/engine/build.cpp index 7cca117..49f196b 100644 --- a/engine/build.cpp +++ b/engine/build.cpp @@ -29,7 +29,7 @@ DECLARE_BUILD_STAGE(engine) "miniaudio.cpp", - "kotgui.cpp", + "kottui.cpp", }; if ( GET_PROJECT_VALUE(config, "steam") == "true" ) diff --git a/engine/kotgui.cpp b/engine/kotgui.cpp deleted file mode 100644 index 1b88f5f..0000000 --- a/engine/kotgui.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include "kotgui/kotgui.h" - -class CKotUIManager: public IKotUIManager -{ -public: - virtual void BeginDrawing() = 0; - virtual void EndDrawing() = 0; - - virtual IRenderContext *GetContext() = 0; - virtual IShader *GetShader( EKotUIShader eShader ) = 0; - virtual IRenderCommandList *GetCommandList() = 0; -}; - -namespace kotgui -{ -void DrawText( - Alignment_t position, - Alignment_t offset, - float fRotation, - - Color4 color, - - uint32_t *pText, - uint32_t uSize, - IRenderFont *pFont, - float fTextSize -) -{ - -} -} diff --git a/engine/kottui.cpp b/engine/kottui.cpp new file mode 100644 index 0000000..77dbd80 --- /dev/null +++ b/engine/kottui.cpp @@ -0,0 +1,23 @@ +#include "kottui/kottui.h" + +class CKotUIBuffer: public IKotUIBuffer +{ +public: + virtual void SetColor( char c ) = 0; + virtual void SetPosition( int iY, int iX ) = 0; + virtual void Printf(const char *szFormat, ...) = 0; + virtual void PutChar( char c ) = 0; + virtual void Clear( char c ) = 0; +}; + +class CKotUIManager: public IKotUIManager +{ +public: + virtual void SetTextSize( int iY, int iX ) = 0; + virtual void SetTextFont( IRenderFont *pFont ) = 0; + + virtual void CreateBuffer( int iWidth, int iHeight, int iY, int iX ) = 0; + virtual void Draw( IRenderContext *pRenderContext ); +}; + +IKotUIManager *KotUIManager(); diff --git a/external/GameNetworkingSockets b/external/GameNetworkingSockets index f9224c1..517fff0 160000 --- a/external/GameNetworkingSockets +++ b/external/GameNetworkingSockets @@ -1 +1 @@ -Subproject commit f9224c168b403c8b9abca7fc326163ac8728b41e +Subproject commit 517fff0cf6866ba163f4f016b0ef28f365c06c05 diff --git a/external/SDL b/external/SDL index ab19d09..1d08131 160000 --- a/external/SDL +++ b/external/SDL @@ -1 +1 @@ -Subproject commit ab19d09939f7c3365508f3894ae63d9faa16c529 +Subproject commit 1d081314a89eb6bfd22bbc0224b604533ae6156b diff --git a/external/SPIRV-Tools b/external/SPIRV-Tools new file mode 160000 index 0000000..0436c4b --- /dev/null +++ b/external/SPIRV-Tools @@ -0,0 +1 @@ +Subproject commit 0436c4b0556fbfcff46610e888974965fd36be2a diff --git a/external/Vulkan-Headers b/external/Vulkan-Headers index 8864cdc..29184b9 160000 --- a/external/Vulkan-Headers +++ b/external/Vulkan-Headers @@ -1 +1 @@ -Subproject commit 8864cdc896bbc2a9b6eb36b3218fc9ef57908d77 +Subproject commit 29184b98984f6169a5e83e97557a77cff1e5b0ca diff --git a/external/Vulkan-Utility-Libraries b/external/Vulkan-Utility-Libraries index d88097b..c15a1ac 160000 --- a/external/Vulkan-Utility-Libraries +++ b/external/Vulkan-Utility-Libraries @@ -1 +1 @@ -Subproject commit d88097b51e70f357a96237c4571ded3433ccde99 +Subproject commit c15a1ac31670cb2ce61c235f070fb40ec6e42612 diff --git a/external/funnystdlib b/external/funnystdlib index 8ea2e08..8f8343e 160000 --- a/external/funnystdlib +++ b/external/funnystdlib @@ -1 +1 @@ -Subproject commit 8ea2e08b244c9c57ab22b6ff293904723eb39bc9 +Subproject commit 8f8343e2506a7ec51b8cb644e050f789614a803e diff --git a/external/slang b/external/slang index ac1b066..f267cb7 160000 --- a/external/slang +++ b/external/slang @@ -1 +1 @@ -Subproject commit ac1b066c55322df195e5d494b141fe22dc82acda +Subproject commit f267cb77a09b0f4cf083a9585bc1ddb3744c310a diff --git a/external/stb b/external/stb index 31c1ad3..e6cd956 160000 --- a/external/stb +++ b/external/stb @@ -1 +1 @@ -Subproject commit 31c1ad37456438565541f4919958214b6e762fb4 +Subproject commit e6cd9561ea6dae43d41633797745789d142b691e diff --git a/external/volk b/external/volk index 3ca312a..e91ceff 160000 --- a/external/volk +++ b/external/volk @@ -1 +1 @@ -Subproject commit 3ca312a4f38baa63d8006b6905abbeeb89c8087d +Subproject commit e91ceff7db05f92ac8b498c9631235a6a73566e2 diff --git a/external/xtool b/external/xtool index c65d45b..f12a84e 160000 --- a/external/xtool +++ b/external/xtool @@ -1 +1 @@ -Subproject commit c65d45ba606786ccdd14f9103edb4f708f34a6d1 +Subproject commit f12a84e960fa9bced1249a8d233ab8eafca28f6f diff --git a/funnyassets/textures/dev/image.png b/funnyassets/textures/dev/image.png new file mode 100644 index 0000000000000000000000000000000000000000..182aa96e381b927f206eb17a095256d0e0fc8ef5 GIT binary patch literal 823259 zcmV)dK&QWnP)@aL#ug$Kt}~C(pJB|Lm`MlS_(QUeocg@re!iNo<}Ff(}eEF1&Zf zO`71p_9%PYrsrln=joYML7F0K$CAHP%nw+2Y3%P7i-}xFYvJ46=kOzVxSHq8F##W% zt%lcOv(|$8OVM$_W2lmYpVs-z>Jwi~8l7CRbZW}4zF{9;@UkhZg&iq%XOh2s=zyDNkDnOMLlA;V_%-#i za4Z*^S5{XnoR!5@(2pAT_S8KplM93Z;ge$n^yPI@akl7?5m9XNn$hQ6mNNO zGFHLutlaQT31L{RXY;;nzlraCk$m;o_L}o{74aU{e_6|Aqq)9EZuOeqWZsasd@dI@ z=Z$Au<;h;b8>zgX~*h(dmv(#^3qiUFb&Xp*>c@-ZWssgslovdq7;l5Y-i;q zEc`ye+9Z}QLO;*YYjT5OxockH%l4v<E9$HAtdPS~Y(XQ`iY zKjnPpdC9{fa3_KYEV2B^@sSe;wU{*G(DI292Q33ZMtKGgk-#{CM}t~eI326Adp_jv zN^Xzi$CAt=1O7va5JzN?!Naq_c+emP3M+UmS(AlUg(~w4=rZZ+#5Wq{R%-*adT4}b zpf3b;nXY-_c@}tTSuw&mJDOS(|weFTm_WUOGZ8(D-DNkb;K41WQH-FNMd5^U zL6%O{jGrxv$6lS);lbRW)!7VYR_F~5R2U9axSN#sbN}k7JY-c7!Z>ref@KP3M#E$O z#)WY6#xH>I`tkw@H)`^n$_pTj<$VFdYX;2n-PtLb4Mlw4)7r)<@k#Ca^Tt((E(r+0 zqX0L!MZ6SAR6a657_`_X5aJxXy4?~Eca^P&czP^k?{=2^ZUjQCbH{8b^osalhk}CI zS0KKuF6>o*WVcrz>TxlU2at5S?(=MIWOjmI_dOgBa^oTV?sqE6672Z{p^+T80wk

+I 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