mirror of
https://github.com/thunderbrewhq/typhoon.git
synced 2025-12-12 02:22:30 +00:00
feat(vector): add CImVector
This commit is contained in:
parent
785c612610
commit
e960598699
3 changed files with 48 additions and 0 deletions
|
|
@ -5,5 +5,6 @@
|
||||||
#include "tempest/vector/C2iVector.hpp"
|
#include "tempest/vector/C2iVector.hpp"
|
||||||
#include "tempest/vector/C3Vector.hpp"
|
#include "tempest/vector/C3Vector.hpp"
|
||||||
#include "tempest/vector/C4Vector.hpp"
|
#include "tempest/vector/C4Vector.hpp"
|
||||||
|
#include "tempest/vector/CImVector.hpp"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
19
tempest/vector/CImVector.cpp
Normal file
19
tempest/vector/CImVector.cpp
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
#include "tempest/vector/CImVector.hpp"
|
||||||
|
#include "tempest/Math.hpp"
|
||||||
|
|
||||||
|
uint32_t CImVector::MakeARGB(uint8_t a, uint8_t r, uint8_t g, uint8_t b) {
|
||||||
|
return a << 24 | r << 16 | g << 8 | b;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CImVector::operator==(const CImVector& color) {
|
||||||
|
return this->value == color.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CImVector::Set(float a, float r, float g, float b) {
|
||||||
|
uint8_t a_ = CMath::fuint_n(a * 255.0f);
|
||||||
|
uint8_t r_ = CMath::fuint_n(r * 255.0f);
|
||||||
|
uint8_t g_ = CMath::fuint_n(g * 255.0f);
|
||||||
|
uint8_t b_ = CMath::fuint_n(b * 255.0f);
|
||||||
|
|
||||||
|
this->value = CImVector::MakeARGB(a_, r_, g_, b_);
|
||||||
|
}
|
||||||
28
tempest/vector/CImVector.hpp
Normal file
28
tempest/vector/CImVector.hpp
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
#ifndef TEMPEST_VECTOR_C_IMVECTOR_HPP
|
||||||
|
#define TEMPEST_VECTOR_C_IMVECTOR_HPP
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
class CImVector {
|
||||||
|
public:
|
||||||
|
// Static functions
|
||||||
|
static uint32_t MakeARGB(uint8_t a, uint8_t r, uint8_t g, uint8_t b);
|
||||||
|
|
||||||
|
// Member variables
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
uint8_t b;
|
||||||
|
uint8_t g;
|
||||||
|
uint8_t r;
|
||||||
|
uint8_t a;
|
||||||
|
};
|
||||||
|
|
||||||
|
uint32_t value;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Member functions
|
||||||
|
bool operator==(const CImVector& color);
|
||||||
|
void Set(float a, float r, float g, float b);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
Loading…
Add table
Add a link
Reference in a new issue