From c9674d1e9d90cd7eba2bc27586bd3608f367e6a8 Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Fri, 1 Mar 2024 15:51:05 +0800 Subject: [PATCH 01/23] Implement: Add missing text texture & classified texture --- include/Core/MissingFontTextureBase64.hpp | 302 ++++++++++++++++++ ...se64.hpp => MissingImageTextureBase64.hpp} | 8 +- include/Util/MissingFontTexture.hpp | 21 ++ include/Util/MissingImageTexture.hpp | 21 ++ include/Util/MissingTexture.hpp | 20 -- src/Util/Image.cpp | 4 +- src/Util/MissingFontTexture.cpp | 18 ++ src/Util/MissingImageTexture.cpp | 18 ++ src/Util/MissingTexture.cpp | 17 - src/Util/Text.cpp | 35 +- 10 files changed, 409 insertions(+), 55 deletions(-) create mode 100644 include/Core/MissingFontTextureBase64.hpp rename include/Core/{MissingTextureBase64.hpp => MissingImageTextureBase64.hpp} (84%) create mode 100644 include/Util/MissingFontTexture.hpp create mode 100644 include/Util/MissingImageTexture.hpp delete mode 100644 include/Util/MissingTexture.hpp create mode 100644 src/Util/MissingFontTexture.cpp create mode 100644 src/Util/MissingImageTexture.cpp delete mode 100644 src/Util/MissingTexture.cpp diff --git a/include/Core/MissingFontTextureBase64.hpp b/include/Core/MissingFontTextureBase64.hpp new file mode 100644 index 00000000..5fb9a464 --- /dev/null +++ b/include/Core/MissingFontTextureBase64.hpp @@ -0,0 +1,302 @@ +#ifndef CORE_MISSING_FONT_TEXTURE_BASE64_HPP +#define CORE_MISSING_FONT_TEXTURE_BASE64_HPP + +// A error image base64 string. +// Since we want to hardcode the image, we have such a long string here. +// The original image should find in here: https://i.imgur.com/4quDNEE.png +static constexpr const char *MISSING_FONT_TEXTURE = + "/9j/4AAQSkZJRgABAQAAAQABAAD//" + "gAfQ29tcHJlc3NlZCBieSBqcGVnLXJlY29tcHJlc3P/" + "2wBDAAkGBggGBQkIBwgKCQkKDRYODQwMDRoTFBAWHxwhIB8cHh4jJzIqIyUvJR4eKzssLzM1OD" + "g4ISo9QTw2QTI3ODX/" + "2wBDAQkKCg0LDRkODhk1JB4kNTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NT" + "U1NTU1NTU1NTU1NTX/wAARCACyASwDASIAAhEBAxEB/" + "8QAHAAAAQUBAQEAAAAAAAAAAAAABAIDBQYHAQAI/" + "8QASRAAAgEDAQUFBAcGBQEFCQAAAQIDAAQRIQUGEjFBEyJRYXGBkaGxBxQjMlLB0RUzQmJy4RZ" + "DU4KikiQ0k7LwFzZjZHODs+Lx/8QAGgEAAgMBAQAAAAAAAAAAAAAAAAECAwQFBv/" + "EADQRAAIBAgQEAwYFBQEAAAAAAAABAgMRBBIhMQUTQVEyYbEiI0JxgcEzNJGh0SQ1Q/DxYv/" + "aAAwDAQACEQMRAD8As4OD68qXjI8K92ZbXTGNNKUoyNdKxFwgV3HhXSnwpOozQB0PgcvYa9keg" + "pt2I1HSuIWJOSMUgHuAFcgjXwpQICnJ1pCovFxYAPiK6SDnh59aAEtgn9aB2nsiy2tD2d9bRzD" + "oSO8PQ8xRMsiQxFpXVFXmzHAFDjadiOV5AfLtBRcmoSktEUnbH0bSLxSbJm7VR/" + "kzHDD0br7aqbC92HfqHE9rcxHiQnKOp8Qf0rZRtOy6XcH/AIg/" + "Whr4bI2nAYb17OePwd1OPQ509lWRq9xOlPsyq7C+" + "lC5B7LbatdxscvKmBIT0LDk2Og09tapsjbez9u7HkXZdwly8sXBwodYyRglwdVxnr7Kyna/" + "0bAIZtj3Axz7Gdun8r/" + "r76qKSbT2FtISW8s1tdRcmifDY8iNCKtUk9il03Lob5sbYthulD9Q2TCLq/" + "ZR20z8l83P8I8BzNIM5luXNpKZpmGJL515j8MY5AZ68vWs72B9Jkoigs9sRt9XVgzyW6EM7Z1a" + "Qfxez3Gr7sa/tNoWvbWU8c0fABlDnBzyI6HyNCBppbD8MCQquBqeIkk5JOmpPU1kP0p4/" + "9oOyR/" + "8AJwf+Zq2AuAF9D+" + "VZVv8A7KvdsfSRsyOxt3mZbOEsRoFHE2pJ0FSIoyzFW3dvcnaG8exklBSysY52eS8ue7Gq8K6j" + "8XI8qmLLYW7+6H2m1GTb21U1+qxn/s0R/" + "mb+I+VD7a3k2ht8r9clAhQ4jgjHDHGPAKPzp3vsOzNTjgXYe6+yINnyJcBI+" + "yhu5EyeHHFxBeWT0zUTblnu7p5ZHll7QAySHiYjA6/lUqwJ3M3fc9Yk/wDxn9Kirf8A73d/" + "1qf+IpRISOQaX90OX3D8K5JpteE+MTD4iuxabTuB4oh+" + "dB7T2ra7Pv4HlkBKq4KrqdcYptpbjjCU3aKuwna+" + "uy5T4YPxFFz30FrGDNIFJGi8yfQVA3N7c7Vs2FvwLHIMKid938tOXsq0bE3D2jdIsjxLZBgOKS" + "470h/28/" + "eRU4ySRBxadmV1L24lv7o2+LdX4SWlHeHTl+" + "tSOzt1r3bRL29vJMWGPrM5wg9CfyFX6y3Q2HsJfrd5wzSj/" + "OuSMaeC8qMl26WHBY2rOOkkwMaewfePuFRlV7ElAg9kfRzb2lug2lctdFFA4EHAn6mp0bS2Xsi" + "P6taKrMnKC2QEj1xoPaaBaO62gc31y8i/" + "6MY4Ix641PtNPxWcUSYVVCqNFUYFVNuW5NJIbudr39ypCmOyjPIriST3/" + "dHuNDxW6CbtRxSSt3WkdizEep5D0wKeYRgkgEt0BFOAanibGR060hmDb23F2m8l/" + "bzzOwjnZRlv4c6fCoLNWj6SYew31ujjHaqkg9ox+" + "VVQsB1q9bFT3Fk1wGkcXhXOI0xDpIpJbWk5OK4CD1oGbv2hLsup4cDPjTgYka5pKA9uW4QUYan" + "OufTwxXXGM8OtYTSe1brmu8lxikoTjOD6VwyZyBkeykAo4xgU3wkHu6DwrqFi2CD60rm2nupDO" + "DiAOCK5k+" + "2lLnOK7wg58aYiF3qk4d35unEyj41n7NrV532fs9hAfimUfM1nslwgJBYZFUVNz1PCUlh7vuOs" + "1Ms/" + "kKQbhPxikNNGVPeHKq7M62aPcv26m2f2hurNFI2ZrONkOeZXhPCfy9lULi0HpS9h7VfZd1IwyU" + "miaJ1HUEae44NMPIseOI1ZPWxz8HSVKU5dHYXxU/" + "Z7Qutn3HbWVxJBKP4kOM+viPI0H26eJ91LRg4yDmoK8dTZJU6sXB6plz2T9JoKdntmB8op+" + "0tlGWPgVJ09R7qhN4d533kuY3ECQQwJwRIDxNg/" + "ibqdKLstyYtu7AjvLSfsrnLK6yaoxB966Y8ahLjY17sa4aG/" + "hKMdVbIKuPEEc62VJqVO55fAUuVjlDtf7jFdGnOk9tGDjirolRjgNrWOzPV3g9Lmgbv7yftLd6" + "32bPwiexlURkDHFFwsB7QdPaK7Jei1v7lFiklkbhIVRpy6nkKq+6qu+" + "8lnFHw8U0giHEcDLaDJ9cVsdvuLs6yLXe2brtWYDKBuCPTp4t/" + "60rdRneOp47imGVHEeytHqZje3VwDc3MxZI0jUMsGcZycKW//" + "AJVTdi7ljzJyav8A9J+8FrczwbH2Ugis7TvSKqcAaQjw8h86z2SVY+" + "epPSs9abnKyO1wrDKhR5s95ehYty9533X22JyOK3lHZzrgZ4T1HgRW0ttK9urdSjR20LKDle+" + "5GPE6D3GvnOOUOMj3VaLvfy6/wXBsaEMkgBjlnzqYx91R7NCfAUUp5dGQ4jgue41Ke+z/" + "AJCN8t8DfbU+q7NnkMMLHiuOMl5W8Q3RR0xjPOoJdsXxP/fbn/xm/" + "WoeNszL60Txqn3mA9ajNts6GFo06VPKlsTEO3NoxkFL+6Ujwmb9avG5m+" + "Vzf3C7N2lMZHk0hmOhJ/" + "C3j5GsyWdPxr76Ls7t7e4jmibDxsHUjxByKIzcWGIwtKvBxsrm9x2p4s8WdM8qLW3XhzzyM5pj" + "Z17FtKwt7mIjE0SyYHmOVSHECg0xpg1tR4iSadmYt9M1g0e1rS8VdDFwMR5HSs3zW9fSNsuK9s" + "Y+2Pdxw5I1GdPzrAZkaGaSJlZmRipwNMg4q2L0sVtC+MdNaTxNmi4diXkv3zFAvmeI/" + "CpzZu4V3tDHZ295dZ6qhVPf/er1Slu9CvPEq7OoPfcA9NacWKV1yltO6+IjNaXY/" + "RRdsI8raWPC4bJPE2nTT9as8P0Y2giXtr64L414UUD86Vqa8UgvJ7IMHt9tcLAEjBPpTEV7bTH" + "EVxGxB5BsGniNc9B5VzmmjVmR0NoOHSuAjw50osAumPZSf4tBSGcGRjyrmO9qMeFLAwNDmkMPC" + "gBY+NeJHXSkIcMQeQrp71Ayr7+yEbNtk/FKT7lP61nMpzM/rV+3/kxHZJ5ufkKz2Q/" + "aufM1U9ZM9NgtMJH6nmFINFWds99eRW0ZUPM4RS3LJ8asI+jnap5S2n/" + "Wf0oSJzrU6eknYqsX71fWnLwYKe2rBdbjbR2bA91PJbGOEcTBXJPs0qCvRllHlS+" + "Itp1IzpNxdwSn7RvteH8QqwbF3FuNs7KjvY7yKMSFhwMjEjBx0p693CvdlwG6FxDOsXedVBU46" + "kZqTWhnhiaSqKObW5Y9wZs7HuYvwTZ94/tQG/8Arc2WmO4/" + "zFObhycM15Cf4lVh7CR+dc37TNxZ46I/zFRv7BRGOXiT/" + "wB6Gft98+prlW+P6OL6dFkW8tgHAYAhtM6+FRe8O6V/" + "u32DXfZyRTjKSxk4z4HPI1O2hojiKU5ZYy1Gdl3DQzwTqxDxSKwI5gg5rbNt7RTZGyp9pP8AaS" + "IoKGRuJmY/" + "dGTWHWKFon8q0Tf7aDNsHY1roO2iW4fHXCgDPtJqMJZVIWKoLEVaKfnf1KFdyvcXDyysXdyWZj" + "1J1JqIkfjkZvdVk2Vsh9t7YgsEkERuG4O0Izw6HXFQu1tk3GxdqT2F4oWaBuFsHIPgR5Ea1CC0" + "ubcRUjm5a+YNC3BID05GibhPs8+FDKKOA7S18+GnLR3Ck7pxAo/" + "3i+" + "tPXI1Wml0Ip655D1p9QjrBjFP2kpD8J9lDZrsb8MqnzqT1RCEsskb39GN2Lvc2NS2WtZXi4fL7" + "w+dWwZK9NNdKzH6I78xw7Sty2gMcoHvU/lWj/" + "WQRxDkddavpu8UeX4hDJiZrzv8AqR28+xZNs2HYxypEfxEE49lVaz+" + "hjZHbNNtG7uboueIqhEa/DJ+NXmS44gQ+M46U0bsLzzr4VanYw2BrPdrZGzCPqthboy/" + "xMvEx9pzUgZFVSudeg6CgGvQCe8QfAimTeESE458tMk0Nt7glbYKxiVmJz4AV1GOD9qw15BtKY" + "gJ4iWP3qeHB1wPLIpDMXNwQCAoIx4UqDaF3btm3uZo/" + "6XPyqtrtyUHnDIPcaITbgIHHD68Jp5ZGjPTe5a4d59oxHvuk39aD5jFHwb5cOk9qCepjfHwNUx" + "NrW7c+NfUU6t9bOMLMmfAnFRafVDy03sX+HejZ0uO0Z4T/" + "ADpp7xmj4NpWd0fsLqGQnoHGfdWaowZTwkNnqNcV0A8XpUbIXKfRmogdTyrhU+" + "ys8h2lc26jsp5Ux4MaMj3p2jEusyyY58aD8qMnYhlkhP0hNi+s08ImPvb+" + "1UInLH1qybx7Wk2texyyoqNHHw4U6HUnNVjOtZre0z1FBZcNTRM7rKJN57BT/" + "rA+7JrXVOKybcwA712XEQAGY6nT7prWFQ8ORVkVocfiL94l5EZvQ+" + "N2rzzTHxFZVd6yL6VqO9vd3auieoUD/qFZddfvh6VXLxHQ4cv6aXz/AINO3JATdGz8+M/" + "8jR+2iDsO8P8A8F/lQe5643TsNNOAn/" + "kae3jfs9gXP8y8I9pxU3sclLNibf8Ar7lY3Kbg28yfjgb4EGjd9F4ri1/ob51H7qd3eaL/" + "AOjJ+VSu9y5ntv6G+dV/AdmX9xXy+zLHZ/" + "8Ac4AOfAvyFP77bJW++jid2UGSCNZl05FTr8M01Z62sPki/" + "KrBfwpNuPcpj71nIMf7TV8dmcFNxqpruYXs6DETGp3ei4N1fWMedLewgjA8+HJ+" + "dBwwdlAo8qXfkybQcnoqL7lA/Ksjd0z2UIWlFvon9iX+jm2WXfS3LDIjSR/" + "+OPzqQ+mfYMax2W1oEAPEbeUjqNWUn/" + "kKT9GyBd6GYnHDbvr7RVn+kOy+" + "vbnbRGrGNBMvqpz8s1opr2DhY2q446L8kYNiibU5Rh4GhyNaftNGYeVVS2OvS0kDMOFyPA09c/" + "uwfOkzriZvWlzKXgAHlR2JxWkkB5rqKSdBT8dt1NELGFFDmkEKEnuXT6MJ+z29cRn/" + "ADbc9M6hga1dF/GMYGcVi+4e0I9nbyrLK/AnYupPu/StGO9ay6QW80x6FVJ/" + "KtFHwnnOLq2J+" + "iLI5HDrqPlTE0sUaFpHRBz7zcNVfaO1dsXWzrhbeyliJjbDE8JGh5a1ks22Lu678s7sTrknJ+" + "NXxWY5DdjbZ959k2ykSXcCkdA3EfhURefSHsmBiUMsx8VQLn31kJuHb7zsfbSC/" + "nVmQjmNMn+lVRnsLRf/ALjk/" + "KoqX6TdpPISogUeAiB+Zqj9oBXe0FPIhZmKR4yMMqt6il9laMNYVB8tKFAXo9dwej1EsHjbW+" + "co8ik/zZ+dDy2/D3hKW/" + "qFePF+KmpC9O4rDf1xo2xw4x+E4qw7tWd1tYPKbl44IzggHJY+" + "AqqTq2c4q97kKId3w7f5kjaZx1P6UmxrTYW6BZCByBpLLlSPHmae7NmY15kIWqToWITaA4J2Ge" + "S1D4PhUxenN4/kcUPWNytJnp6VLNRhr0Q3sof9vXPQH5VZLa/" + "uLVswzyqPBXIFQApuaV4XRo2KkZ5VZCrbSxkxXD+Ys9/" + "2LXtPbtxd7Hkt5n7TiZdSNRg5qp3J+39goxNoLdW/" + "AwKyjXTkRTbW6SNxNnPkajUknK48FQlCg4W6l83Z29Z2+" + "71lBM7RskeCSpI5nwr29W1oLmyhgtpVk7RuNivQDl8flVQglaKJUTGFGBTgcscscmiU4uNkU4f" + "h04V+bN6XuTO6S8e8mfwQN8cVJ71jFxb+" + "aN86qlndTQXEksEjRtjGVOOtHvtG5v8ABupTIUGFJAzg03H3dyKblxC/" + "+7F8tDi3ix+AfKpe7uOz3Xn7/wDkNpnyNUGHeK7SNVAiwoAHc/vT1zvPfXVi1q/" + "ZLGwweFNSPWmqiSM0eGVuYpO1rkU4y3CPSm7xCu0JweYkI92lFbPge72hDFGAWdxjPLx1oe7z9" + "enL44u0bOOWcmqbaHfc/" + "eZfIsO4JEe3ZCf9Aj4irptSS3udnXEMrpiSJ0xxeKkVQN2oIptoss0kka9mT3GK51GmlWuDZuz" + "8k/VnmOn31Zv/ADVppeE81xR2xN/" + "JGIEY08Kct9JfUU5tCLsNo3MWMcErrjwwxpqH98vrVL2O7TeqYm6GJj5inI9UX0pN2PtB6UqI/" + "ZKfCoPY1w0mx0LXsAAmm+" + "0PlXi5OhquxqzIsn0fhf8AFUbSIXVYnOAvF08K1ETPxErBLw9FIVR8TWc/" + "RtE37ZuZxG8gjgx3cfxEeJ8q0Xtbg54bf04pAPlmtlLwnjuLSvibdkjjmeRSOyjXOnfkz8hWB7" + "YRtnbWuoiCFSVhwjoc1vbfWmGqwqfMsf0rG9/" + "LRoN5rniADOQ+nI5rVT3OPLYrRvD0iY+teNxM33YwPU1wKx5YFOLGfH4VaQG+" + "Ocn7yivfbdZj7qeEXiT7672a+P8AyoA4IGzqXHtrvYsB+8b3Vfv8O7AZji5uEHQl/wD9aR/" + "hvYwBK37/AO7hJ+VU3ZflfYofZS9H94puZpIkPE6ZHTXNaFa7t7KlYqb/" + "ALM4yCyDB+OhoC6+ju2uriRo9twqHJOqDA/" + "5U0xOLKKZCwzWj7s2pXdK2k4iO6WIHUc6iX+" + "jSQZEW2bRumqEfnVoitf2du7HbcaOYYgpZToSABQwinciyeA904NMuc68qdJyc5pDDQa1UdEgL" + "o5upf6jTNevWOZSDzY/OgeNvxH31jy3dz1CqKnFRt0DxTF2dV9KXs+ze/dwJjHwAHXXNFNsN/" + "4rjJ/p/" + "vU403uZ62Mp2cHuA2v70+lGIda4+" + "zjZgP2ofi0xjGKFe5aOQgAYHjUJRd7FtGrHl5lsSSHSuvLwJgczypuFJRErypwhhkEHmKcW1WS" + "TiLEDqPGko62ZOdVctzjqh62QiHixz1oqA5BNMse7gchS4WwK01FaFjiYObnisz63DE5UqhBcO" + "udFxT8NxxYbAyDqDyrM01uduNWE/" + "C7lm3W2f9obuaNyuOGMBTr4n8qrW0H4doXAAxiVtPaa0XZ1ybvZ8M8ckcaOo7oQd3xHOsz2u3D" + "ta7XOcTPr4941bJJRVjj4avKpXqSloWPdNm/" + "a5CYyYiNTjwq7qk4B1jXywT+Yqg7pSL+24g7lFMbag46VeyLZgcys/wDuc1Ol4TFxVe/" + "+iMa3igMe8m0FPS4fpjrQMSYdT51N70Rou81/wfd7Ykc/zqKGhFUyep3aMbwi/" + "JDF6uqn1rkX7mlXhyF9TSIT9kfWo/" + "CaV+Iero50L9ZbPIVI7JvltL6C6MSTCJwxjcZDY6UsttyaqqSeXc0rcPZVxsvYrSvb/a3TB+8/" + "CQuO6MY9T7as3aXWf3UIJ8XJ/" + "Kk2tzJd2sc8IgMcqB0PEx0Oo6U5w3XMvAP9rH862xVlZHiK9WVWpKct2NkXRPeeFc9ArH86zL6" + "S7V12hFLJwtxoRxqMcvL21qJFyOc8fsi/vVI+ki1laxjlZlk4GGe7wkZyKshuZ5bGWiNcat/" + "ypapH1I99OhQD9w/9NLUfytWixVcaCx+APspWE6Kf+mngCf4G+FKAb/" + "TPvFArllTLHHEB5mnYoDKrEuqYB4eL+I+" + "FDhseHLlXQ7seZrKdcUMryJ9a4TXM56ikseetIaY4PSvByWxpSUkIU+" + "emPKko3Cck0BcczSGbGfnXC3XNMzHulh4UDWrIC7OYz5tQlE3R+" + "zHrQ1ZY7Ho63iJjd6NnNwV6AfnUoxKjNRewsiKYg47wHwqRck1ph4TgYjWqwXaJPZoMdfyqDmP" + "2r1NbR+7GPWoSf96/" + "rVEvGzrYf8tH6k8AfqiDHJR8q9G2DiiI1UWgDHOVXGPSgEfXFFZWaYuGyU4zg+/" + "qGchXOLhxjrXPvRg+IrjgpjNWVNYXMWDjlxOV9LjpB4ckaHkaRFIY52XxpYyVxmu7Tj+r/" + "UJuksRz6hiPkRRUV4hg6mWu13LpuXdCWxngMQdo34gTjkfXzFU7eH7LeG+" + "Xh4cTNp4Z1qZ3IueHb3Yl2UTxsvdPUaj5GonfRPq+9l4uSeIq+TzOVFVrWCL8nLxk/" + "NXJDdGcx7fsyBktlcZxzU1pYkn7Mns1yenaf2rIt3bjstq2L8RXEyjI6a4rW+wbBAuJQB/" + "T+lSpbNGPiy95GXdGS72Mf8U3/" + "EAD2uoBz0FQ+ald6DnefaGWLYmIyeZqK6Vmk9Wejw8Pcw+" + "S9Ae6buj1pFu3dPrXbr7o9aRbH71S+Ej/" + "AJAdtGPrT1q+HK+" + "OtNSDEretejbhkB86seqM8Xlnc1v6PdozXewmthKga0fhAZOI8J1HX1q1EXK/56f+F/" + "esv+j68eDeL6uspjF1GU0AOSNRz9taeIZ9D9aY+" + "H2a1bTd4nnuJUuViJW2ep5kuBgm6AGeXZD9ar2+" + "lpNNsSY9qHwvFgx45HyNWXsJsZFyfbEtRu3bOWaxZWuCQwKkdmo6VctGc57GKlWzjC0oB/" + "BfjS5oWSVlLNkHHIVxUP4z8K1Gc8A/8vxpQEn8nxrgQ/" + "jPuFLCHGrt7hQBNA9K5xnBGaPhtDICQpGMY0GvtzTp2O8qAkAHqAOVZsp0eaupFBtNTpmu5B6a" + "Cj32PwzKBKpDdG0OfzpTbOCTBcxryODqce+" + "lYfNQPFBFKTgkE6DypE0X1dQp4WOTrz6CpNNl3GOMSqNPuxweuvnS22bMDH9hLJk5AaDT26CpW" + "TIcyzIFpM8h7qRMGNs7gEgKdQOVW27tp2mRYLAKjRd4gooDeGc5z6VE7R2Lc2eyLmeUSAcPeDX" + "HF18KjJJJsuo1M1SK80Ui70VfWh8UTeDvKKYCmscdj1FXWbJnYNu8ltIwGgfU49KlRZsxwMnoc" + "Cj9yrJJNgMzO6lpm+" + "6uc8utWKHZtmv8MjnJP7zPyrXC2VHl8TUfOkjP9sxmJ4hhgNSOIYzVel1kf1NXXfeKKK7tFiTg" + "+zYnvE9apZGZj5t+" + "dZ5eNndw35SH19Sx3UsVnaLJIWcaAcJHPFRqyLIeNMhWOQDzxWprbqYVXsoyANPs1NUPeuAQbw" + "S4GA6q/" + "LHTH5VOvbKjFwio+" + "dKL6oc2dYm8tQ0SyO4cqwCnhA9QDrXNtW0lpLEJF4cocDGORqW3ImL211FxcmV8Z8Rj8qG34cC" + "9tsf6TfOot3ollNOPEnH5/" + "urhtru4720TqBh1DEswHMVHb27PktNlW0jSBhHKVAzy4hn5irdYHGzrY8h2Sc9OgqL3xgM+" + "7N1hQez4ZAQfA/pmrnrE5dGbjiE/Mq2w736rtizn4scMqknyOh+dFfSF/" + "wC8Sy9JIF18cEiq9bykRKRzWrJvyhuNm7MvhqHUqT01AYfI1mhs0d7E6Vqc+6a+" + "5A2M5jVXU6o2R7Na2eDaBuIUkj4W7RQw541FYbZyY4h7a0jYu0E/" + "wqlwxwYYmU97quf7VKk7SaM3E6bnShJd7fr/AMKbteX6zti8lP8AHM5+JoIjANOM3ESTzOppD/" + "cNZN2ekjHLFLsCXP3V9aRbfeb0pVz/AA0i3/eH0q74TE/" + "xREw+" + "2b1pFOTjEppuprYzzXtMltkXrWV9a3anWGRX9x1rcUmjKBg2jag9KwG0bKkeBrU93dom82FaEj" + "jdUCOfDGmtTpbtHP4tDNThV+hbxcxgZLgZoe/" + "ZZrYhSCQRyqM+" + "tdm4LKvgOeSaIWcHVgF8cgGtFjzxQr3cjadxezSW4gKO5KgyYPyoFtztrxkjsI2wcZEorTFeOQ" + "MY3jPCSDryNcIYAYeLJ01bnU1ORHKjL13Z2sY+NbMkcxiRdaSu7+1WUMLGQgjIII/" + "WtSUSq2TGh/" + "pbNOBsDSFAPDFPOxZEQ6bLsIosIshI1OZWJNLthZmMkWgBBw3EScEdDRqomMqDjxAPt8KBukFl" + "P250Q92UEgadGxry+" + "VQLB50WMccFtDxZ1UqMketKjuBIp7JUyNGHCAV9a4hRzjnnwyQaRLArYkiykqjAcqNR4EE6ikA" + "t/rMR4lYsp6ciPb1pIkFyueKTiU8xzHqK7a3hlyh7sq80La+oIGo/9GvSx/" + "WHOUYOBoyg5X3nlQB7DAYdBIvjjB9xqI3m4Bu9ccDEElRwZ/" + "m8Kknea0P2xHAf41Iz7QNfdUTvXKkuwgQQ5MqgOMnI15H2VGfhZpwavXgvNGd3Y+" + "0HpTaRljhQSfKjpLdXk4mJwByFKUqi4VeEeVY81kex5WaTbZY929uWmyNkLb3CziQOzEx8tT61" + "KNvjYsf3czD+aMfkapHaDwND3N0YwFQYJ6npTVWeyMtThmFbc5X/" + "AFJnefa0G1ryF7dHQRx8JDeOc6VWE71wB4uB8aIgyUJJySedM2qcd5EMZzIox4600227jlCNOl" + "GMNkbNwOqd+NwOWuCPnmqVvyi/" + "tC2lTGGjKnHkf71de0hgcqWFuc9Br+lVnfxTJYW0vG8gSUrllA0I/" + "tWiqrxZ57hs8uKj53ANxpQNqyxt/" + "mRHHqCP70vfzH1614SGHYtqCT186jN1phDt+" + "2LMFDMVJPTINH78S9pe2pExlAhOD7aoWtJnanDLxGL7r+" + "S47OTGy7Y4cZhTGgA5DwpG0I0vNl3MBZGMkTJgZY6g+" + "Ve2VC77MtysCDES94PqdB0p9p1hcrLO6seasg5D41rWx5iTtUb8zH7U9wg8wat9wn7T+" + "jrA1e1HEMDXunx/" + "pNVa7hFrtu8gX7qysBpjTOnwq5bkyC42Xd2skjCMPkqFByGGD8qyw0m0elxbvho1V8LTKFbtib" + "HiKnLXazw7FuLAD984bi8B1HtwPjURtC0OzNqS25PEInwGH8S9D7qcU4OarndM30MlWCvqtGEZ" + "pEh0xXQwIzmmnbiNVJG+T0GLg5cDypMH70elel1kPlpXodJlq+3smD/" + "IKnXv58qa4aMZOKmjFTjsRqL2mItdJceIq+bk3MjWs9qiqzK4cFjgAHQ/" + "EVRVUo4PgatW6Fx9W24gOcTKU0GdeY+" + "VOOk0Z8VT5mFnHtqXuOFY2Lk8UnIsT8B4Cm3d7ic28JKkfvXB+" + "4PAfzH4Uie645Vt7dgZmGSzcol8SD1PSireGK2hEca8Sg6nqW651rWeSFIiwxKiIQgGAAeQoVS" + "JtqgahbZMnP4m5fD50TLJAqNK4KgAlicjHjzzihtkpmzMzHD3DmQjI68h7qBBwxjQ9PdUTLtMb" + "PvLiJ2Pek4x6ED+9TAUnIy2SNMqTVZ3hsGm2iHXIzGAceOTQgRLhSCAWj+" + "LHHmKcEQMZVQ7Y5cEemPbRKdqznCxgMNOZIPwpLyIGAmuwGJxjuj4amgCLt+K3m+" + "qyocEZt2dzqv4TjwoxJOzVRxQqcfw6n20zfWsU0bpAs0k6ENGeE6Hx1pVpdPcQlxEkTK3BImNV" + "frpjQUAemUXKqMS6HIdBwlT0rkE0qOILmJOInhSZyeGTy6gN5daKQkks04VQABoB8TmmpjaTRG" + "KaQ3AB1GS2D00GlABPEgU9+KIaZ4Rg/" + "H9KrO98MS2Ubo7Mzy98cOBoD5YJqSSY7PfEkDi3J4UmkIVl8Q+" + "NSPPnUfveZXhthLwHLMQVJJPLr151CfhZu4er4mBTXSmiuKMeM5xTTQk50PurHY9ldAjDFBXOs" + "g9KkniPLB91GbD3dO2NpZmyltEB2hzgt/" + "KPP5U4JtlGJqRp03KT0IWFCsQyMZ1FObC2bPtPa8MNvHxsGDt4BQckn/" + "11qb3otY4ttvFaxcESRoqogyBpy0qwbpbJm2JYMbizZZZyC8jEd0Y0GNTp5flVkI3k0c/" + "FYpRw8ZrdrQmlaVVPHEsCk4Oe8AfZURvZaLLu5NKHVjGyMOz+" + "6dcH51YELOFaO7BXXJgH5nJoHauzLWfYF6Qh4zE5DHOS2PH2VolrFo89hpZK0ZeaM42Qzpte1M" + "Q4nEycI8Tmpzfx5X2jbGaMoexONQcjPlUbu7DMNv2TrbySYlDAAYzjXmdKld+" + "WuLu9tXe2kThhZcYJ/" + "iPUDFZIr3bPT1Zp42mvJlo2bEjbKt2EzkdihwJBwg8I6UQl26Kwt4o5Seka4z6tyr2ztmW77Nt" + "GkRnleFNXOoGByHIUTcCOygybpUxoBIAc+nWti2PJ1PG/" + "mZnvrZT2+" + "8xvJYhGl4Aw4SCMgAHl7D7aP3BKPtmWGQqA8RYcQBGVPgfImp7eSzn23spoBaNxqRJA50yR4A6" + "4PL21VN3LWWDeK0+s2svAz8LK8bYIIxWeSyzTO/" + "h6qr4KdN7pf8APQsW+" + "O7i7cCy7PKzXsQ4cRg99fAnkCOmtUBAygo6lXQ8LAjBBFbOkEKL9jI0SjTGc49AfSqhvZsOO+" + "ujPYgSXvOVIxq48SNcEeOdanVhdXRm4bjuVJU6j09Ck0uKJ55kjjHE7sFUeJNeKMrFWBBBwQRy" + "qy7mbDe7u/r7grDAe4fF/" + "wC1ZYxcnY9HiK8aFJ1H0K3tTY15sm4Md7CY2P3W5q3oetBx6Sr61r15awz2cqXRhltzz7cEKPP" + "PQ1Rr/" + "dC54muNmRST2wbQY7x9OpHxrRKm0tDi4XiEKjSqaP8AYH2PsiTa5ljgyZlwQMaY1ySelI2jsW8" + "2W/Dd27R55NzU+hqx7l2s1heXH1uKe3EkYCMwKAkN586tjrHLFwSyhw/" + "MSIrKR50QheIsVjpUsQ0tY6ehkJjqQsZXhkimjOGQhgfAirJt/" + "di0RozZlVnnbEcUZJDeeOg9tRg3d2lZsY5bSQ41yg4hj1FRlBo2YbF0a11e1+" + "5e7GBrWIcPatJLhmkYBuPI5/" + "2pxpie7iFsNjvrwmhtjXLHZdsJpJI5VXgORqMacufKpBpDz7jjQaoQT5HnWlO6PK1I5JuPYiNq" + "N2yxWiRjjupODKMT3Rq2h91SahQFXikAUYGVDDT0qLt8Xu3p5ux+ztlEWIyCM+" + "PmalQYg2VeRB1BBI+IpkDoMYDYkUeHEuKQYu0weFWwMZWbAp6NSwPZzgZ+" + "7nGD7RTeJF0fsSR5f2oECytEjskkiFuQLEsT7POnEvYF1hikYcIAEcfB8TgUKbq1e3hZI4EwAQ" + "UABzjw8q79ceSMusUhIOASvAPef0oGFfXZJEKdlCnDoxJLMfdj51F3KS2s7XplZomIEyxYXI17" + "w9KOBunILtDCDnvKC3D7dBS5tnGRMyzPcRNzVdMn0H60ADK9tE8Z44myAwZl4uL30RDOXJWCGQ" + "p+FVCg+mcUFs6dbC+" + "ewlwkcj5gmwB7CetFNfrFOMBGbqEbiJ15YWgB6S3kkhDN2SDOoYmQ48ccqCSyk2fpwyT20eeOI" + "nhZM9VHh/LRaS3Ejho7dF01MsmP+IyflSuzkljxNdHBB/" + "dIEx7Tkn30BsMo9k8QnhMUaHXi0BJ8/" + "On4bheFTBAXwTkouAfPJwPnUe1iLaQT7L4TKhPEj5cOM9R0J8qMi23b3SnP2EsekkErYKny8RQ" + "O7E3NhPfkJPHBAXyQPvOD5YAAOnnTT2M1tkOXvIkwGQth1Ps0aj4NqpKh7FJJWU57vL2McD50h" + "La6uSxxFaIxyBGO0b9M+w0CuMQ3Nu9qexfs1BwdAOH1HQ1768JgUhR5gpJ7mgH+" + "46D31xthLJmbLvKCCZmPfyORxy+" + "FOSTy2A7O8WMoDkTIO75cS9PZpQA01nPPwsxit20PHGCZMDqW0GPfXUtGjciRRdKT3WJGQemh7" + "p+FOvewRpxl0wwwpBBU+YHX2V6S9umYdhbScB07a4XgAHpzI5eFABEd/DIrwhh3Rhlxwt/" + "04+PKkSbSt2QRRdrcuWyIU72NOR6D30gbKW7m49pSvcMgIXACKg9B+" + "ZpCWk0SqttIJEXXglHDgctGH5g0ANLbzTkOrCxBzmOM5LeuuPhTiRNZvlUjmcnWTH2h9c5+" + "BFKW6WN1inzA7aYlAXOvQ8j7KTNtK1hHC6lpGPEqR4Lt6j9aAFxXqO+" + "JXC6aKy8LemvP2V292raBOxdPrE/+mq8THw9B60xdW91tICOcJBa4yYrcqzN/" + "Uf0xSYNnRWwZbRjEj4yrd4O3XIP5UAM/" + "Vprrikmke0ixpDES5GvMk+" + "PlT0Ie2jKokPcXXgGMfD86cnlmhcxtbhsnVoQSPHGDy9hptNoLxle0AbOHV+" + "6RjyOKAA73Zmy7uYy39somY/" + "e4Spb11waf7axt4xDDah5MDs4ouftI5DzpH7Qub2R49nKCgJAuHXI0/" + "COROKIstnW9mVWKZw8gPFIudR6evlSSSJupOSUZN2R622XLccDXU4kcEssLd6OLp1OvqaJftO1" + "CmEOQSQYmI5eR/" + "WuOlxEigSRTOWKmPHC3vHMezpSZLtotJraSM8hx6jHqvXnTIDxu+" + "yDC5UgDpIuV9SdRQN7PZwwdsVRpS2EWN8cZ6YA6U4+1o7a1aeRoWUZ0Vwxc9AB50Js/" + "Z5vZnv8AaTBJJsGOKLuBAOWg60AP7M2Vds7XN3Pm7dcAnBAHQUeqTdozFRIFUkiNiuPXNJIkVW" + "SK4YAHBV++D7efxpLX00P7yNTg5BWTHocN+" + "tADbuJI27dHHERqVBHvHlQ19eRW9lNNHwqUTulGweLoBRv7ThASSWAxgkNlkKgj15fGona7w7S" + "vrK0tCrHJd2Da46DI6YoAM2JbS2uzo5O1XtZe9J3M4z+" + "tSAuJQSZQGUHGVbhIpK2JWApBOylf4T3gQPI0tYLkqV4YiCOJeIcBzQAktC02Z4T5EjOnicUhp" + "rRmJD8I6DjNOq06R96NwnPjTvDy1of9qouQXJIPgKBCIokie07NFTij14RjPeNL53KZ6sQfPWv" + "V6gbC4FBs1BAI7Q9PKkFFMaEqCSM5x516vUAVDb7sNtSqGIVQABnQa1aI0VbWThUDEcWMDl3a9" + "XqB9Dt4oW0LAAN2hGRzxhaYckyjJz3l5+" + "6vV6giExKqOxUBT2g5DHQ1U7RjNvEvakvmYA8WuRkV6vUIlEu0uk06jQLMAB4Ck3DMLORgSGBy" + "DnXrXq9QIXAzdo3ePIdfKm78AWd6RoRGcEdOVer1Aiq7uqpuCSoyFkIOOWgqctyTKpJyeEnPsr" + "1eoGw1WIIUE47UjHlS20VseA+" + "Rr1eoEVzb7sdnXgLEgCLAzyyRmk7rgMLjiGcYxnpXq9QSWxOt3JQU7pEzYI0x3TSckzKSSSzgk" + "nrrXq9SIhNw7KXKsR3uh86ru3QOzt9BpK4+" + "Ar1epoaC7Rj9TTU6KceWlHuB2j6DpXq9QD3CLLvxXLN3iiLwk8x3hyr0MSGEkopPaHXFer1AIq" + "e9fc22oTugwoTjTPOprYjNLYF5GLv2R7zHJ516vUDC+" + "ECwkYABuBjnGudKEUccJLanhGp9K9XqCIS3ceRV7oyowPCqpfO0G9V0IWMYWXQIcY5V6vUIaLj" + "xsEjIY5MYJOeZydacJPZnU/f/ACr1eoEJsnZ4l4mLaNzOetEsoB5Dr869XqAP/9k="; + +#endif // CORE_MISSING_FONT_TEXTURE_BASE64_HPP diff --git a/include/Core/MissingTextureBase64.hpp b/include/Core/MissingImageTextureBase64.hpp similarity index 84% rename from include/Core/MissingTextureBase64.hpp rename to include/Core/MissingImageTextureBase64.hpp index bff75dd9..8880a872 100644 --- a/include/Core/MissingTextureBase64.hpp +++ b/include/Core/MissingImageTextureBase64.hpp @@ -1,10 +1,10 @@ -#ifndef CORE_MISSING_TEXTURE_BASE64_HPP -#define CORE_MISSING_TEXTURE_BASE64_HPP +#ifndef CORE_MISSING_IMAGE_TEXTURE_BASE64_HPP +#define CORE_MISSING_IMAGE_TEXTURE_BASE64_HPP // A transparent image base64 string. // Since we want to hardcode the image, we have such a long string here. // The original image should find in here: https://i.imgur.com/zS4sPCN.png -static constexpr const char *MISSING_TEXTURE = +static constexpr const char *MISSING_IMAGE_TEXTURE = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEABAMAAACuXLVVAAAAIGNIUk0AAHomAACAhAAA+" "gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAhUExURf8A3P8A3uEAwh4AGgAAAP8A3+" "IAwx0AGcoArjUALv///" @@ -21,4 +21,4 @@ static constexpr const char *MISSING_TEXTURE = "IgAAACh0RVh0ZGF0ZTp0aW1lc3RhbXAAMjAyMy0xMi0yNVQxODozMjo0NCswMDowMIYEjHkAAA" "AASUVORK5CYII="; -#endif // CORE_MISSING_TEXTURE_BASE64_HPP +#endif // CORE_MISSING_IMAGE_TEXTURE_BASE64_HPP diff --git a/include/Util/MissingFontTexture.hpp b/include/Util/MissingFontTexture.hpp new file mode 100644 index 00000000..82e14dbc --- /dev/null +++ b/include/Util/MissingFontTexture.hpp @@ -0,0 +1,21 @@ +#ifndef UTIL_MISSING_FONT_TEXTURE_HPP +#define UTIL_MISSING_FONT_TEXTURE_HPP + +#include +#include +#include +#include +#include + +#include "Base64.hpp" +#include "Core/MissingFontTextureBase64.hpp" + +static constexpr auto MISSING_FONT_TEXTURE_BASE64_DECODE_LENGTH = + DecodeBase64Length(MISSING_FONT_TEXTURE); +static constexpr auto MISSING_FONT_TEXTURE_BASE64_DECODE = + DecodeBase64( + MISSING_FONT_TEXTURE); + +SDL_Surface *GetMissingFontTextureSDLSurface(); + +#endif diff --git a/include/Util/MissingImageTexture.hpp b/include/Util/MissingImageTexture.hpp new file mode 100644 index 00000000..d530c095 --- /dev/null +++ b/include/Util/MissingImageTexture.hpp @@ -0,0 +1,21 @@ +#ifndef UTIL_MISSING_IMAGE_TEXTURE_HPP +#define UTIL_MISSING_IMAGE_TEXTURE_HPP + +#include +#include +#include +#include +#include + +#include "Base64.hpp" +#include "Core/MissingImageTextureBase64.hpp" + +static constexpr auto MISSING_IMAGE_TEXTURE_BASE64_DECODE_LENGTH = + DecodeBase64Length(MISSING_IMAGE_TEXTURE); +static constexpr auto MISSING_IMAGE_TEXTURE_BASE64_DECODE = + DecodeBase64( + MISSING_IMAGE_TEXTURE); + +SDL_Surface *GetMissingImageTextureSDLSurface(); + +#endif diff --git a/include/Util/MissingTexture.hpp b/include/Util/MissingTexture.hpp deleted file mode 100644 index f0b7e90f..00000000 --- a/include/Util/MissingTexture.hpp +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef UTIL_MISSING_TEXTURE_HPP -#define UTIL_MISSING_TEXTURE_HPP - -#include -#include -#include -#include -#include - -#include "Base64.hpp" -#include "Core/MissingTextureBase64.hpp" - -static constexpr auto MISSING_TEXTURE_BASE64_DECODE_LENGTH = - DecodeBase64Length(MISSING_TEXTURE); -static constexpr auto MISSING_TEXTURE_BASE64_DECODE = - DecodeBase64(MISSING_TEXTURE); - -SDL_Surface *GetMissingTextureSDLSurface(); - -#endif diff --git a/src/Util/Image.cpp b/src/Util/Image.cpp index 63ffd682..694f31a5 100644 --- a/src/Util/Image.cpp +++ b/src/Util/Image.cpp @@ -5,7 +5,7 @@ #include "Core/Texture.hpp" #include "Core/TextureUtils.hpp" -#include "Util/MissingTexture.hpp" +#include "Util/MissingImageTexture.hpp" #include "Util/TransformUtils.hpp" #include "config.hpp" @@ -30,7 +30,7 @@ Image::Image(const std::string &filepath) }; if (surface == nullptr) { - surface = {GetMissingTextureSDLSurface(), SDL_FreeSurface}; + surface = {GetMissingImageTextureSDLSurface(), SDL_FreeSurface}; LOG_ERROR("Failed to load image: '{}'", filepath); LOG_ERROR("{}", IMG_GetError()); } diff --git a/src/Util/MissingFontTexture.cpp b/src/Util/MissingFontTexture.cpp new file mode 100644 index 00000000..93fd83c1 --- /dev/null +++ b/src/Util/MissingFontTexture.cpp @@ -0,0 +1,18 @@ +#include +#include +#include + +#include "Util/MissingFontTexture.hpp" + +SDL_Surface *GetMissingFontTextureSDLSurface() { + SDL_RWops *rwop = + SDL_RWFromConstMem(MISSING_FONT_TEXTURE_BASE64_DECODE.data(), + MISSING_FONT_TEXTURE_BASE64_DECODE.size()); + SDL_Surface *aSurface = IMG_LoadTyped_RW(rwop, 1, "JPG"); + + if (aSurface == nullptr) { + LOG_ERROR("base64ToSurface"); + } + + return aSurface; +} diff --git a/src/Util/MissingImageTexture.cpp b/src/Util/MissingImageTexture.cpp new file mode 100644 index 00000000..fab7eb52 --- /dev/null +++ b/src/Util/MissingImageTexture.cpp @@ -0,0 +1,18 @@ +#include +#include +#include + +#include "Util/MissingImageTexture.hpp" + +SDL_Surface *GetMissingImageTextureSDLSurface() { + SDL_RWops *rwop = + SDL_RWFromConstMem(MISSING_IMAGE_TEXTURE_BASE64_DECODE.data(), + MISSING_IMAGE_TEXTURE_BASE64_DECODE.size()); + SDL_Surface *aSurface = IMG_LoadTyped_RW(rwop, 1, "PNG"); + + if (aSurface == nullptr) { + LOG_ERROR("base64ToSurface"); + } + + return aSurface; +} diff --git a/src/Util/MissingTexture.cpp b/src/Util/MissingTexture.cpp deleted file mode 100644 index c8f8bec0..00000000 --- a/src/Util/MissingTexture.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include -#include - -#include "Util/MissingTexture.hpp" - -SDL_Surface *GetMissingTextureSDLSurface() { - SDL_RWops *rwop = SDL_RWFromConstMem(MISSING_TEXTURE_BASE64_DECODE.data(), - MISSING_TEXTURE_BASE64_DECODE.size()); - SDL_Surface *aSurface = IMG_LoadTyped_RW(rwop, 1, "PNG"); - - if (aSurface == nullptr) { - LOG_ERROR("base64ToSurface"); - } - - return aSurface; -} diff --git a/src/Util/Text.cpp b/src/Util/Text.cpp index 1bbec036..8311f2d4 100644 --- a/src/Util/Text.cpp +++ b/src/Util/Text.cpp @@ -3,6 +3,7 @@ #include "Core/Texture.hpp" #include "Core/TextureUtils.hpp" +#include "Util/MissingFontTexture.hpp" #include "Util/Text.hpp" #include "Util/TransformUtils.hpp" @@ -23,19 +24,23 @@ Text::Text(const std::string &font, int fontSize, const std::string &text, InitUniformBuffer(); } + auto surface = + std::unique_ptr>(); m_Font = {TTF_OpenFont(font.c_str(), fontSize), TTF_CloseFont}; if (m_Font == nullptr) { - LOG_ERROR("Failed to load font: '{}'", text); + surface = {GetMissingFontTextureSDLSurface(), SDL_FreeSurface}; + LOG_ERROR("Failed to load font: '{}'", font.c_str()); LOG_ERROR("{}", TTF_GetError()); + } else { + surface = + std::unique_ptr>{ + TTF_RenderUTF8_Blended_Wrapped(m_Font.get(), m_Text.c_str(), + m_Color.ToSdlColor(), 0), + SDL_FreeSurface, + }; } - auto surface = - std::unique_ptr>{ - TTF_RenderUTF8_Blended_Wrapped(m_Font.get(), m_Text.c_str(), - m_Color.ToSdlColor(), 0), - SDL_FreeSurface, - }; if (surface == nullptr) { LOG_ERROR("Failed to create text"); LOG_ERROR("{}", TTF_GetError()); @@ -113,11 +118,17 @@ void Text::InitUniformBuffer() { void Text::ApplyTexture() { auto surface = - std::unique_ptr>{ - TTF_RenderUTF8_Blended_Wrapped(m_Font.get(), m_Text.c_str(), - m_Color.ToSdlColor(), 0), - SDL_FreeSurface, - }; + std::unique_ptr>(); + if (m_Font == nullptr) { + surface = {GetMissingFontTextureSDLSurface(), SDL_FreeSurface}; + } else { + surface = + std::unique_ptr>{ + TTF_RenderUTF8_Blended_Wrapped(m_Font.get(), m_Text.c_str(), + m_Color.ToSdlColor(), 0), + SDL_FreeSurface, + }; + } if (surface == nullptr) { LOG_ERROR("Failed to create text: {}", TTF_GetError()); } From ccfe4825169b486735c833c4984f6c58644d9f77 Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Fri, 1 Mar 2024 15:53:34 +0800 Subject: [PATCH 02/23] Chore: CMakeLists.txt --- CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b60e40ee..65323937 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,7 +51,8 @@ set(SRC_FILES ${SRC_DIR}/Util/Root.cpp ${SRC_DIR}/Util/Color.cpp ${SRC_DIR}/Util/Animation.cpp - ${SRC_DIR}/Util/MissingTexture.cpp + ${SRC_DIR}/Util/MissingImageTexture.cpp + ${SRC_DIR}/Util/MissingFontTexture.cpp ${SRC_DIR}/App.cpp ${SRC_DIR}/Giraffe.cpp @@ -72,6 +73,8 @@ set(INCLUDE_FILES ${INCLUDE_DIR}/Core/Texture.hpp ${INCLUDE_DIR}/Core/TextureUtils.hpp ${INCLUDE_DIR}/Core/Drawable.hpp + ${INCLUDE_DIR}/Util/MissingImageTexture.hpp + ${INCLUDE_DIR}/Util/MissingFontTexture.hpp ${INCLUDE_DIR}/Util/LoadTextFile.hpp ${INCLUDE_DIR}/Util/Logger.hpp From 4f1c11dc6680d51e231e2d7df3fd2492d1db5cef Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Thu, 11 Apr 2024 14:48:05 +0800 Subject: [PATCH 03/23] Tidy: Unused header --- include/Util/MissingFontTexture.hpp | 2 -- include/Util/MissingImageTexture.hpp | 2 -- 2 files changed, 4 deletions(-) diff --git a/include/Util/MissingFontTexture.hpp b/include/Util/MissingFontTexture.hpp index 82e14dbc..2223233c 100644 --- a/include/Util/MissingFontTexture.hpp +++ b/include/Util/MissingFontTexture.hpp @@ -4,8 +4,6 @@ #include #include #include -#include -#include #include "Base64.hpp" #include "Core/MissingFontTextureBase64.hpp" diff --git a/include/Util/MissingImageTexture.hpp b/include/Util/MissingImageTexture.hpp index d530c095..fd240c18 100644 --- a/include/Util/MissingImageTexture.hpp +++ b/include/Util/MissingImageTexture.hpp @@ -4,8 +4,6 @@ #include #include #include -#include -#include #include "Base64.hpp" #include "Core/MissingImageTextureBase64.hpp" From 309365b600d76ab9c3686bc59adbc9558507a90e Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Thu, 11 Apr 2024 14:49:57 +0800 Subject: [PATCH 04/23] Chore: Print log first then assign surface --- src/Util/Image.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Util/Image.cpp b/src/Util/Image.cpp index 694f31a5..27c53533 100644 --- a/src/Util/Image.cpp +++ b/src/Util/Image.cpp @@ -30,9 +30,9 @@ Image::Image(const std::string &filepath) }; if (surface == nullptr) { - surface = {GetMissingImageTextureSDLSurface(), SDL_FreeSurface}; LOG_ERROR("Failed to load image: '{}'", filepath); LOG_ERROR("{}", IMG_GetError()); + surface = {GetMissingImageTextureSDLSurface(), SDL_FreeSurface}; } m_Texture = std::make_unique( From 391b4831ac0025f7f6b39dbbaecb8dce67f5c07a Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Thu, 11 Apr 2024 14:59:25 +0800 Subject: [PATCH 05/23] Implement: Merge MissingImageTexture and MissingFontTexture into MissingTexture --- include/Util/MissingImageTexture.hpp | 19 ------------------- ...singFontTexture.hpp => MissingTexture.hpp} | 0 src/Util/MissingImageTexture.cpp | 18 ------------------ ...singFontTexture.cpp => MissingTexture.cpp} | 2 +- 4 files changed, 1 insertion(+), 38 deletions(-) delete mode 100644 include/Util/MissingImageTexture.hpp rename include/Util/{MissingFontTexture.hpp => MissingTexture.hpp} (100%) delete mode 100644 src/Util/MissingImageTexture.cpp rename src/Util/{MissingFontTexture.cpp => MissingTexture.cpp} (91%) diff --git a/include/Util/MissingImageTexture.hpp b/include/Util/MissingImageTexture.hpp deleted file mode 100644 index fd240c18..00000000 --- a/include/Util/MissingImageTexture.hpp +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef UTIL_MISSING_IMAGE_TEXTURE_HPP -#define UTIL_MISSING_IMAGE_TEXTURE_HPP - -#include -#include -#include - -#include "Base64.hpp" -#include "Core/MissingImageTextureBase64.hpp" - -static constexpr auto MISSING_IMAGE_TEXTURE_BASE64_DECODE_LENGTH = - DecodeBase64Length(MISSING_IMAGE_TEXTURE); -static constexpr auto MISSING_IMAGE_TEXTURE_BASE64_DECODE = - DecodeBase64( - MISSING_IMAGE_TEXTURE); - -SDL_Surface *GetMissingImageTextureSDLSurface(); - -#endif diff --git a/include/Util/MissingFontTexture.hpp b/include/Util/MissingTexture.hpp similarity index 100% rename from include/Util/MissingFontTexture.hpp rename to include/Util/MissingTexture.hpp diff --git a/src/Util/MissingImageTexture.cpp b/src/Util/MissingImageTexture.cpp deleted file mode 100644 index fab7eb52..00000000 --- a/src/Util/MissingImageTexture.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include -#include - -#include "Util/MissingImageTexture.hpp" - -SDL_Surface *GetMissingImageTextureSDLSurface() { - SDL_RWops *rwop = - SDL_RWFromConstMem(MISSING_IMAGE_TEXTURE_BASE64_DECODE.data(), - MISSING_IMAGE_TEXTURE_BASE64_DECODE.size()); - SDL_Surface *aSurface = IMG_LoadTyped_RW(rwop, 1, "PNG"); - - if (aSurface == nullptr) { - LOG_ERROR("base64ToSurface"); - } - - return aSurface; -} diff --git a/src/Util/MissingFontTexture.cpp b/src/Util/MissingTexture.cpp similarity index 91% rename from src/Util/MissingFontTexture.cpp rename to src/Util/MissingTexture.cpp index 93fd83c1..c99a991e 100644 --- a/src/Util/MissingFontTexture.cpp +++ b/src/Util/MissingTexture.cpp @@ -2,7 +2,7 @@ #include #include -#include "Util/MissingFontTexture.hpp" +#include "Util/MissingTexture.hpp" SDL_Surface *GetMissingFontTextureSDLSurface() { SDL_RWops *rwop = From 4bf6bc08871c1bd533998b9a307d350257cc0cf0 Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Thu, 11 Apr 2024 15:00:44 +0800 Subject: [PATCH 06/23] Implement: Merge MissingImageTexture and MissingFontTexture into MissingTexture --- include/Util/MissingTexture.hpp | 8 ++++++++ src/Util/Image.cpp | 10 +++------- src/Util/MissingTexture.cpp | 13 +++++++++++++ src/Util/Text.cpp | 2 +- 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/include/Util/MissingTexture.hpp b/include/Util/MissingTexture.hpp index 2223233c..cc304e75 100644 --- a/include/Util/MissingTexture.hpp +++ b/include/Util/MissingTexture.hpp @@ -7,6 +7,7 @@ #include "Base64.hpp" #include "Core/MissingFontTextureBase64.hpp" +#include "Core/MissingImageTextureBase64.hpp" static constexpr auto MISSING_FONT_TEXTURE_BASE64_DECODE_LENGTH = DecodeBase64Length(MISSING_FONT_TEXTURE); @@ -14,6 +15,13 @@ static constexpr auto MISSING_FONT_TEXTURE_BASE64_DECODE = DecodeBase64( MISSING_FONT_TEXTURE); +static constexpr auto MISSING_IMAGE_TEXTURE_BASE64_DECODE_LENGTH = + DecodeBase64Length(MISSING_IMAGE_TEXTURE); +static constexpr auto MISSING_IMAGE_TEXTURE_BASE64_DECODE = + DecodeBase64( + MISSING_IMAGE_TEXTURE); + SDL_Surface *GetMissingFontTextureSDLSurface(); +SDL_Surface *GetMissingImageTextureSDLSurface(); #endif diff --git a/src/Util/Image.cpp b/src/Util/Image.cpp index 27c53533..ef3a2b2b 100644 --- a/src/Util/Image.cpp +++ b/src/Util/Image.cpp @@ -1,14 +1,10 @@ -#include "Util/Image.hpp" - -#include "pch.hpp" - #include "Core/Texture.hpp" #include "Core/TextureUtils.hpp" - -#include "Util/MissingImageTexture.hpp" #include "Util/TransformUtils.hpp" +#include "Util/Image.hpp" +#include "Util/MissingTexture.hpp" -#include "config.hpp" +#include "pch.hpp" namespace Util { Image::Image(const std::string &filepath) diff --git a/src/Util/MissingTexture.cpp b/src/Util/MissingTexture.cpp index c99a991e..aa6199e3 100644 --- a/src/Util/MissingTexture.cpp +++ b/src/Util/MissingTexture.cpp @@ -4,6 +4,19 @@ #include "Util/MissingTexture.hpp" +SDL_Surface *GetMissingImageTextureSDLSurface() { + SDL_RWops *rwop = + SDL_RWFromConstMem(MISSING_IMAGE_TEXTURE_BASE64_DECODE.data(), + MISSING_IMAGE_TEXTURE_BASE64_DECODE.size()); + SDL_Surface *aSurface = IMG_LoadTyped_RW(rwop, 1, "PNG"); + + if (aSurface == nullptr) { + LOG_ERROR("base64ToSurface"); + } + + return aSurface; +} + SDL_Surface *GetMissingFontTextureSDLSurface() { SDL_RWops *rwop = SDL_RWFromConstMem(MISSING_FONT_TEXTURE_BASE64_DECODE.data(), diff --git a/src/Util/Text.cpp b/src/Util/Text.cpp index 8311f2d4..abd3b40d 100644 --- a/src/Util/Text.cpp +++ b/src/Util/Text.cpp @@ -3,7 +3,7 @@ #include "Core/Texture.hpp" #include "Core/TextureUtils.hpp" -#include "Util/MissingFontTexture.hpp" +#include "Util/MissingTexture.hpp" #include "Util/Text.hpp" #include "Util/TransformUtils.hpp" From 095f8d50b717aa9fdec38510d0d9a42ad178bf9d Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Thu, 11 Apr 2024 15:02:04 +0800 Subject: [PATCH 07/23] Chore: Adjust CMakeLists.txt --- CMakeLists.txt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e5df0bf..fcc8bae9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,8 +51,7 @@ set(SRC_FILES ${SRC_DIR}/Util/Renderer.cpp ${SRC_DIR}/Util/Color.cpp ${SRC_DIR}/Util/Animation.cpp - ${SRC_DIR}/Util/MissingImageTexture.cpp - ${SRC_DIR}/Util/MissingFontTexture.cpp + ${SRC_DIR}/Util/MissingTexture.cpp ${SRC_DIR}/App.cpp ${SRC_DIR}/Giraffe.cpp @@ -73,8 +72,7 @@ set(INCLUDE_FILES ${INCLUDE_DIR}/Core/Texture.hpp ${INCLUDE_DIR}/Core/TextureUtils.hpp ${INCLUDE_DIR}/Core/Drawable.hpp - ${INCLUDE_DIR}/Util/MissingImageTexture.hpp - ${INCLUDE_DIR}/Util/MissingFontTexture.hpp + ${INCLUDE_DIR}/Util/MissingTexture.hpp ${INCLUDE_DIR}/Util/LoadTextFile.hpp ${INCLUDE_DIR}/Util/Logger.hpp From 175d1b5491aad94cc3744d94c1e919322d802c65 Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Thu, 11 Apr 2024 15:03:33 +0800 Subject: [PATCH 08/23] Chore: Print log first then assign surface --- src/Util/Text.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Util/Text.cpp b/src/Util/Text.cpp index abd3b40d..85f1992a 100644 --- a/src/Util/Text.cpp +++ b/src/Util/Text.cpp @@ -29,9 +29,9 @@ Text::Text(const std::string &font, int fontSize, const std::string &text, m_Font = {TTF_OpenFont(font.c_str(), fontSize), TTF_CloseFont}; if (m_Font == nullptr) { - surface = {GetMissingFontTextureSDLSurface(), SDL_FreeSurface}; LOG_ERROR("Failed to load font: '{}'", font.c_str()); LOG_ERROR("{}", TTF_GetError()); + surface = {GetMissingFontTextureSDLSurface(), SDL_FreeSurface}; } else { surface = std::unique_ptr>{ From e068b9a3cf8de6d9b2f932f5aa79b9785d2eeb40 Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Thu, 11 Apr 2024 20:25:11 +0800 Subject: [PATCH 09/23] Fix: Conflict --- example/src/Giraffe.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/src/Giraffe.cpp b/example/src/Giraffe.cpp index 49c956cf..76aea254 100644 --- a/example/src/Giraffe.cpp +++ b/example/src/Giraffe.cpp @@ -9,7 +9,7 @@ void Giraffe::Start() { m_GiraffeText = - std::make_shared("../assets/fonts/Inter.ttf", 50); + std::make_shared("../assets/fonts/NoInter.ttf", 50); m_GiraffeText->SetZIndex(this->GetZIndex() - 1); m_GiraffeText->Start(); this->AddChild(m_GiraffeText); From bc535b4dddd34a6b02e0ae62e44d62baec58eb53 Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Thu, 11 Apr 2024 20:39:56 +0800 Subject: [PATCH 10/23] Fix: Format --- src/Util/Text.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Util/Text.cpp b/src/Util/Text.cpp index 2df323df..677a26c3 100644 --- a/src/Util/Text.cpp +++ b/src/Util/Text.cpp @@ -36,9 +36,9 @@ Text::Text(const std::string &font, int fontSize, const std::string &text, } else { surface = std::unique_ptr>{ - TTF_RenderUTF8_Blended_Wrapped(m_Font.get(), m_Text.c_str(), - m_Color.ToSdlColor(), 0), - SDL_FreeSurface, + TTF_RenderUTF8_Blended_Wrapped( + m_Font.get(), m_Text.c_str(), m_Color.ToSdlColor(), 0 + ), SDL_FreeSurface, }; } From 44a132e77300c7e9985d278f08d1af8e610b26df Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Thu, 11 Apr 2024 20:42:26 +0800 Subject: [PATCH 11/23] Fix: Format --- src/Util/Text.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Util/Text.cpp b/src/Util/Text.cpp index 677a26c3..0619f010 100644 --- a/src/Util/Text.cpp +++ b/src/Util/Text.cpp @@ -36,11 +36,11 @@ Text::Text(const std::string &font, int fontSize, const std::string &text, } else { surface = std::unique_ptr>{ - TTF_RenderUTF8_Blended_Wrapped( - m_Font.get(), m_Text.c_str(), m_Color.ToSdlColor(), 0 - ), SDL_FreeSurface, + TTF_RenderUTF8_Blended_Wrapped(m_Font.get(), m_Text.c_str(), + m_Color.ToSdlColor(), 0), + SDL_FreeSurface, }; - } + } m_Texture = std::make_unique( Core::SdlFormatToGlFormat(surface->format->format), From 0ba33f60b7abfacb391117c83e63904ade038423 Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Thu, 11 Apr 2024 20:53:46 +0800 Subject: [PATCH 12/23] Revert: Font name changes --- example/src/Giraffe.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/src/Giraffe.cpp b/example/src/Giraffe.cpp index 76aea254..49c956cf 100644 --- a/example/src/Giraffe.cpp +++ b/example/src/Giraffe.cpp @@ -9,7 +9,7 @@ void Giraffe::Start() { m_GiraffeText = - std::make_shared("../assets/fonts/NoInter.ttf", 50); + std::make_shared("../assets/fonts/Inter.ttf", 50); m_GiraffeText->SetZIndex(this->GetZIndex() - 1); m_GiraffeText->Start(); this->AddChild(m_GiraffeText); From 003958de81ab1823b86502750b7378f1f6e430be Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Thu, 11 Apr 2024 20:57:58 +0800 Subject: [PATCH 13/23] Fix: Include guard name --- include/Util/MissingTexture.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/Util/MissingTexture.hpp b/include/Util/MissingTexture.hpp index cc304e75..29ab9665 100644 --- a/include/Util/MissingTexture.hpp +++ b/include/Util/MissingTexture.hpp @@ -1,5 +1,5 @@ -#ifndef UTIL_MISSING_FONT_TEXTURE_HPP -#define UTIL_MISSING_FONT_TEXTURE_HPP +#ifndef UTIL_MISSING_TEXTURE_HPP +#define UTIL_MISSING_TEXTURE_HPP #include #include From 1a2e29671601e8b9e49be1e0afb18386a2476190 Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Thu, 11 Apr 2024 20:58:56 +0800 Subject: [PATCH 14/23] Fix: Include sort issue and unused import --- src/Util/Image.cpp | 3 +-- src/Util/Text.cpp | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Util/Image.cpp b/src/Util/Image.cpp index 9e9931de..7281b09d 100644 --- a/src/Util/Image.cpp +++ b/src/Util/Image.cpp @@ -3,11 +3,10 @@ #include "Util/Logger.hpp" #include "pch.hpp" +#include "Util/MissingTexture.hpp" #include "Core/Texture.hpp" #include "Core/TextureUtils.hpp" #include "Util/TransformUtils.hpp" -#include "Util/Image.hpp" -#include "Util/MissingTexture.hpp" #include "config.hpp" #include diff --git a/src/Util/Text.cpp b/src/Util/Text.cpp index 0619f010..e42dda87 100644 --- a/src/Util/Text.cpp +++ b/src/Util/Text.cpp @@ -3,8 +3,8 @@ #include "Core/Texture.hpp" #include "Core/TextureUtils.hpp" -#include "Util/MissingTexture.hpp" #include "Util/Logger.hpp" +#include "Util/MissingTexture.hpp" #include "Util/Text.hpp" #include "Util/TransformUtils.hpp" From c71661cb2ab91ada776f6e501aff02f6e091803b Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Thu, 11 Apr 2024 21:02:59 +0800 Subject: [PATCH 15/23] Fix: Sort import --- src/Util/Image.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Util/Image.cpp b/src/Util/Image.cpp index 7281b09d..3310a1d3 100644 --- a/src/Util/Image.cpp +++ b/src/Util/Image.cpp @@ -3,9 +3,9 @@ #include "Util/Logger.hpp" #include "pch.hpp" -#include "Util/MissingTexture.hpp" #include "Core/Texture.hpp" #include "Core/TextureUtils.hpp" +#include "Util/MissingTexture.hpp" #include "Util/TransformUtils.hpp" #include "config.hpp" From dec3ed98c41ec9336d196a961c48d1fbe9497e72 Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Fri, 12 Apr 2024 13:25:34 +0800 Subject: [PATCH 16/23] Fix: Redundant header on CMakeLists.txt --- CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e018f740..d12d59c0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,7 +70,6 @@ set(INCLUDE_FILES ${INCLUDE_DIR}/Core/Texture.hpp ${INCLUDE_DIR}/Core/TextureUtils.hpp ${INCLUDE_DIR}/Core/Drawable.hpp - ${INCLUDE_DIR}/Util/MissingTexture.hpp ${INCLUDE_DIR}/Util/LoadTextFile.hpp ${INCLUDE_DIR}/Util/Logger.hpp From ec03fa64254b6ea00bfc64ab7bd6dd2dd892bd04 Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Fri, 7 Jun 2024 19:44:03 +0800 Subject: [PATCH 17/23] Fix: Should in Util namespace --- src/Util/MissingTexture.cpp | 40 +++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/src/Util/MissingTexture.cpp b/src/Util/MissingTexture.cpp index aa6199e3..fdc3f3be 100644 --- a/src/Util/MissingTexture.cpp +++ b/src/Util/MissingTexture.cpp @@ -4,28 +4,30 @@ #include "Util/MissingTexture.hpp" -SDL_Surface *GetMissingImageTextureSDLSurface() { - SDL_RWops *rwop = - SDL_RWFromConstMem(MISSING_IMAGE_TEXTURE_BASE64_DECODE.data(), - MISSING_IMAGE_TEXTURE_BASE64_DECODE.size()); - SDL_Surface *aSurface = IMG_LoadTyped_RW(rwop, 1, "PNG"); +namespace Util { + SDL_Surface *GetMissingImageTextureSDLSurface() { + SDL_RWops *rwop = + SDL_RWFromConstMem(MISSING_IMAGE_TEXTURE_BASE64_DECODE.data(), + MISSING_IMAGE_TEXTURE_BASE64_DECODE.size()); + SDL_Surface *aSurface = IMG_LoadTyped_RW(rwop, 1, "PNG"); - if (aSurface == nullptr) { - LOG_ERROR("base64ToSurface"); + if (aSurface == nullptr) { + LOG_ERROR("base64ToSurface"); + } + + return aSurface; } - return aSurface; -} + SDL_Surface *GetMissingFontTextureSDLSurface() { + SDL_RWops *rwop = + SDL_RWFromConstMem(MISSING_FONT_TEXTURE_BASE64_DECODE.data(), + MISSING_FONT_TEXTURE_BASE64_DECODE.size()); + SDL_Surface *aSurface = IMG_LoadTyped_RW(rwop, 1, "JPG"); -SDL_Surface *GetMissingFontTextureSDLSurface() { - SDL_RWops *rwop = - SDL_RWFromConstMem(MISSING_FONT_TEXTURE_BASE64_DECODE.data(), - MISSING_FONT_TEXTURE_BASE64_DECODE.size()); - SDL_Surface *aSurface = IMG_LoadTyped_RW(rwop, 1, "JPG"); + if (aSurface == nullptr) { + LOG_ERROR("base64ToSurface"); + } - if (aSurface == nullptr) { - LOG_ERROR("base64ToSurface"); + return aSurface; } - - return aSurface; -} +} \ No newline at end of file From f98a5d308d8d2cce7e4ff8959f3ad09a48febf54 Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Fri, 7 Jun 2024 19:48:18 +0800 Subject: [PATCH 18/23] Fix: CMakeLists.txt --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index d12d59c0..a1684b85 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,6 +70,8 @@ set(INCLUDE_FILES ${INCLUDE_DIR}/Core/Texture.hpp ${INCLUDE_DIR}/Core/TextureUtils.hpp ${INCLUDE_DIR}/Core/Drawable.hpp + ${INCLUDE_DIR}/Core/MissingFontTextureBase64.hpp + ${INCLUDE_DIR}/Core/MissingImageTextureBase64.hpp ${INCLUDE_DIR}/Util/LoadTextFile.hpp ${INCLUDE_DIR}/Util/Logger.hpp From 7d3bc583834ca762e62f9cb041c30a12bc477889 Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Fri, 7 Jun 2024 23:10:26 +0800 Subject: [PATCH 19/23] Fix: Checker don't like my code :( --- src/Util/MissingTexture.cpp | 38 ++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/Util/MissingTexture.cpp b/src/Util/MissingTexture.cpp index fdc3f3be..23f3477a 100644 --- a/src/Util/MissingTexture.cpp +++ b/src/Util/MissingTexture.cpp @@ -5,29 +5,29 @@ #include "Util/MissingTexture.hpp" namespace Util { - SDL_Surface *GetMissingImageTextureSDLSurface() { - SDL_RWops *rwop = - SDL_RWFromConstMem(MISSING_IMAGE_TEXTURE_BASE64_DECODE.data(), - MISSING_IMAGE_TEXTURE_BASE64_DECODE.size()); - SDL_Surface *aSurface = IMG_LoadTyped_RW(rwop, 1, "PNG"); +SDL_Surface *GetMissingImageTextureSDLSurface() { + SDL_RWops *rwop = + SDL_RWFromConstMem(MISSING_IMAGE_TEXTURE_BASE64_DECODE.data(), + MISSING_IMAGE_TEXTURE_BASE64_DECODE.size()); + SDL_Surface *aSurface = IMG_LoadTyped_RW(rwop, 1, "PNG"); - if (aSurface == nullptr) { - LOG_ERROR("base64ToSurface"); - } - - return aSurface; + if (aSurface == nullptr) { + LOG_ERROR("base64ToSurface"); } - SDL_Surface *GetMissingFontTextureSDLSurface() { - SDL_RWops *rwop = - SDL_RWFromConstMem(MISSING_FONT_TEXTURE_BASE64_DECODE.data(), - MISSING_FONT_TEXTURE_BASE64_DECODE.size()); - SDL_Surface *aSurface = IMG_LoadTyped_RW(rwop, 1, "JPG"); + return aSurface; +} - if (aSurface == nullptr) { - LOG_ERROR("base64ToSurface"); - } +SDL_Surface *GetMissingFontTextureSDLSurface() { + SDL_RWops *rwop = + SDL_RWFromConstMem(MISSING_FONT_TEXTURE_BASE64_DECODE.data(), + MISSING_FONT_TEXTURE_BASE64_DECODE.size()); + SDL_Surface *aSurface = IMG_LoadTyped_RW(rwop, 1, "JPG"); - return aSurface; + if (aSurface == nullptr) { + LOG_ERROR("base64ToSurface"); } + + return aSurface; +} } \ No newline at end of file From 447c26e94a8f6833a9845ac15a641dd599f19224 Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Fri, 7 Jun 2024 23:14:10 +0800 Subject: [PATCH 20/23] Fix: Checker don't like my code :( --- src/Util/MissingTexture.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/Util/MissingTexture.cpp b/src/Util/MissingTexture.cpp index 23f3477a..01803286 100644 --- a/src/Util/MissingTexture.cpp +++ b/src/Util/MissingTexture.cpp @@ -6,9 +6,8 @@ namespace Util { SDL_Surface *GetMissingImageTextureSDLSurface() { - SDL_RWops *rwop = - SDL_RWFromConstMem(MISSING_IMAGE_TEXTURE_BASE64_DECODE.data(), - MISSING_IMAGE_TEXTURE_BASE64_DECODE.size()); + SDL_RWops *rwop = SDL_RWFromConstMem(MISSING_IMAGE_TEXTURE_BASE64_DECODE.data(), + MISSING_IMAGE_TEXTURE_BASE64_DECODE.size()); SDL_Surface *aSurface = IMG_LoadTyped_RW(rwop, 1, "PNG"); if (aSurface == nullptr) { @@ -19,9 +18,8 @@ SDL_Surface *GetMissingImageTextureSDLSurface() { } SDL_Surface *GetMissingFontTextureSDLSurface() { - SDL_RWops *rwop = - SDL_RWFromConstMem(MISSING_FONT_TEXTURE_BASE64_DECODE.data(), - MISSING_FONT_TEXTURE_BASE64_DECODE.size()); + SDL_RWops *rwop = SDL_RWFromConstMem(MISSING_FONT_TEXTURE_BASE64_DECODE.data(), + MISSING_FONT_TEXTURE_BASE64_DECODE.size()); SDL_Surface *aSurface = IMG_LoadTyped_RW(rwop, 1, "JPG"); if (aSurface == nullptr) { From 739d8068a12fa2c1c61e81849ed2c30f257b5e7d Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Fri, 7 Jun 2024 23:16:29 +0800 Subject: [PATCH 21/23] Fix: I hate CLion wtf payment software so bad --- src/Util/MissingTexture.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Util/MissingTexture.cpp b/src/Util/MissingTexture.cpp index 01803286..b8920f81 100644 --- a/src/Util/MissingTexture.cpp +++ b/src/Util/MissingTexture.cpp @@ -28,4 +28,4 @@ SDL_Surface *GetMissingFontTextureSDLSurface() { return aSurface; } -} \ No newline at end of file +} From 95b9f7e916590f30a97de939df386d24fc48f947 Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Fri, 7 Jun 2024 23:20:18 +0800 Subject: [PATCH 22/23] I am physical hacker --- src/Util/MissingTexture.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Util/MissingTexture.cpp b/src/Util/MissingTexture.cpp index b8920f81..956f61bf 100644 --- a/src/Util/MissingTexture.cpp +++ b/src/Util/MissingTexture.cpp @@ -6,8 +6,9 @@ namespace Util { SDL_Surface *GetMissingImageTextureSDLSurface() { - SDL_RWops *rwop = SDL_RWFromConstMem(MISSING_IMAGE_TEXTURE_BASE64_DECODE.data(), - MISSING_IMAGE_TEXTURE_BASE64_DECODE.size()); + SDL_RWops *rwop = + SDL_RWFromConstMem(MISSING_IMAGE_TEXTURE_BASE64_DECODE.data(), + MISSING_IMAGE_TEXTURE_BASE64_DECODE.size()); SDL_Surface *aSurface = IMG_LoadTyped_RW(rwop, 1, "PNG"); if (aSurface == nullptr) { @@ -18,8 +19,9 @@ SDL_Surface *GetMissingImageTextureSDLSurface() { } SDL_Surface *GetMissingFontTextureSDLSurface() { - SDL_RWops *rwop = SDL_RWFromConstMem(MISSING_FONT_TEXTURE_BASE64_DECODE.data(), - MISSING_FONT_TEXTURE_BASE64_DECODE.size()); + SDL_RWops *rwop = + SDL_RWFromConstMem(MISSING_FONT_TEXTURE_BASE64_DECODE.data(), + MISSING_FONT_TEXTURE_BASE64_DECODE.size()); SDL_Surface *aSurface = IMG_LoadTyped_RW(rwop, 1, "JPG"); if (aSurface == nullptr) { @@ -28,4 +30,5 @@ SDL_Surface *GetMissingFontTextureSDLSurface() { return aSurface; } -} +} // namespace Util + From a9749dbfc754d2758bb8af6cd81c2a3e882ca26c Mon Sep 17 00:00:00 2001 From: ntut-xuan Date: Fri, 7 Jun 2024 23:23:00 +0800 Subject: [PATCH 23/23] Chore: I hate checker it so bullshit --- src/Util/MissingTexture.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Util/MissingTexture.cpp b/src/Util/MissingTexture.cpp index 956f61bf..d0a69fd9 100644 --- a/src/Util/MissingTexture.cpp +++ b/src/Util/MissingTexture.cpp @@ -31,4 +31,3 @@ SDL_Surface *GetMissingFontTextureSDLSurface() { return aSurface; } } // namespace Util -