# Stage 2
- reAdd Text Shorting - make SpriteSheet part of SmartCtor - Add Some Gaussian Blur func (not functional for now) - Add Image Indexing functions and Reverse32 for (RGBA -> ABGR) - Add Transparency flag to Keyboard and Fix its Render Prder - Add UI7 Alignment API - Incldes PushAlignment (One way Alignment, JoinAlign, etc) - Make Setter for Scroll Offset public - Make Getter for ScrollMod Public - Add a Check if Menu is duing an animated scroll - Add FindMenu to Context for Modifications after Context::EndMenu - Fix Major Issue in Lithium InBox Function - Fix TextAlignRight and Add PerLine Text Shorting - Fix Screen being unused in Performance Overlay - Add Beta Slider Dragging - Dont Handle Inputs for Objects when scrolling - Add a MainArea to Not Handle Inputs outside of it - Simplefied some logic - TODO: - Write TextWrap Function - Add PerLine text Align - Track and Fix a lot of UI7 Bugs such as Alignment Issues etc
This commit is contained in:
39
include/pd/maths/img.hpp
Normal file
39
include/pd/maths/img.hpp
Normal file
@ -0,0 +1,39 @@
|
||||
#pragma once
|
||||
|
||||
/*
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2024 - 2025 tobid7
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <pd/common/common.hpp>
|
||||
#include <pd/maths/vec.hpp>
|
||||
|
||||
namespace PD {
|
||||
namespace Img {
|
||||
inline int Index3dsTex(int x, int y, int width) {
|
||||
return ((((y >> 3) * (width >> 3) + (x >> 3)) << 6) +
|
||||
((x & 1) | ((y & 1) << 1) | ((x & 2) << 1) | ((y & 2) << 2) |
|
||||
((x & 4) << 2) | ((y & 4) << 3)));
|
||||
}
|
||||
inline int IndexDefault(int x, int y, int width) { return y * width + x; }
|
||||
} // namespace Img
|
||||
} // namespace PD
|
54
include/pd/maths/img_blur.hpp
Normal file
54
include/pd/maths/img_blur.hpp
Normal file
@ -0,0 +1,54 @@
|
||||
#pragma once
|
||||
|
||||
/*
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2024 - 2025 tobid7
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <pd/common/common.hpp>
|
||||
#include <pd/maths/img.hpp>
|
||||
#include <pd/maths/vec.hpp>
|
||||
|
||||
namespace PD {
|
||||
namespace ImgBlur {
|
||||
std::vector<float> GaussianKernel(int radius, float si);
|
||||
/// @brief Gaussian Blur for basic Image Buffer
|
||||
/// @param buf Image Buffer (unsigned char)
|
||||
/// @param w // width of the image
|
||||
/// @param h // width of the image
|
||||
/// @param radius // Blur radius
|
||||
/// @param si // Blur sigma
|
||||
/// @param idxfn // Indexing function (if buffer is 3ds tiled)
|
||||
void GaussianBlur(std::vector<u8> &buf, int w, int h, float radius, float si,
|
||||
std::function<int(int, int, int)> idxfn = Img::IndexDefault);
|
||||
/// @brief Advanced func to access memory directly
|
||||
/// @param buf Referenvce to the buffer
|
||||
/// @param w // width of the image
|
||||
/// @param h // width of the image
|
||||
/// @param bpp Bytes per Pixels (RGB[A], RGB565, etc)
|
||||
/// @param radius // Blur radius
|
||||
/// @param si // Blur sigma
|
||||
/// @param idxfn // Indexing function (if buffer is 3ds tiled)
|
||||
void GaussianBlur(void *buf, int w, int h, int bpp, float radius, float si,
|
||||
std::function<int(int, int, int)> idxfn = Img::IndexDefault);
|
||||
} // namespace ImgBlur
|
||||
} // namespace PD
|
@ -30,5 +30,10 @@ namespace PD {
|
||||
namespace ImgConvert {
|
||||
void RGB24toRGBA32(std::vector<u8> &out, const std::vector<u8> &in,
|
||||
const int &w, const int &h);
|
||||
/// @brief Reverse 32 (RGBA -> ABGR || ABGR -> RGBA)
|
||||
/// @param buf Buffer to convert
|
||||
/// @param w width
|
||||
/// @param h height
|
||||
void Reverse32(std::vector<u8> &buf, const int &w, const int &h);
|
||||
} // namespace ImgConvert
|
||||
} // namespace PD
|
Reference in New Issue
Block a user