Integrate all the progress into master #6
|
@ -5,25 +5,6 @@ namespace ControllerTest {
|
||||||
using DigitalButton = Periphery::AnalogeController::Button;
|
using DigitalButton = Periphery::AnalogeController::Button;
|
||||||
using namespace JabyEngine;
|
using namespace JabyEngine;
|
||||||
|
|
||||||
// This should go to JabyEngine eventually
|
|
||||||
template<typename T>
|
|
||||||
static GPU::Link* link_array(GPU::Link* last_prim, T* elements, size_t length) {
|
|
||||||
for(size_t n = 0; n < length; n++) {
|
|
||||||
last_prim->concat(elements[n]);
|
|
||||||
last_prim = &elements[n];
|
|
||||||
}
|
|
||||||
|
|
||||||
last_prim->terminate();
|
|
||||||
return last_prim;
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename T, size_t N>
|
|
||||||
static GPU::Link* link_array(GPU::Link* last_prim, T(&elements)[N]) {
|
|
||||||
return link_array(last_prim, elements, N);
|
|
||||||
}
|
|
||||||
|
|
||||||
// --------------------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
static void set_active(GPU::SPRT_16::Linked& sprt, bool is_active) {
|
static void set_active(GPU::SPRT_16::Linked& sprt, bool is_active) {
|
||||||
sprt->tex_offset.y = is_active ? 16 : 0;
|
sprt->tex_offset.y = is_active ? 16 : 0;
|
||||||
}
|
}
|
||||||
|
@ -71,7 +52,7 @@ namespace ControllerTest {
|
||||||
|
|
||||||
void ControllerState :: setup() {
|
void ControllerState :: setup() {
|
||||||
for(size_t n = 0; n < 2; n++) {
|
for(size_t n = 0; n < 2; n++) {
|
||||||
link_array(link_array(&this->tex_page[n], this->buttons[n]), this->arrows[n]);
|
GPU::LinkHelper::link_array(GPU::LinkHelper::link_array(&this->tex_page[n], this->buttons[n]), this->arrows[n]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -88,5 +88,23 @@ namespace JabyEngine {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace LinkHelper {
|
||||||
|
template<typename T>
|
||||||
|
static Link* link_array(Link* last_prim, T* elements, size_t length) {
|
||||||
|
for(size_t n = 0; n < length; n++) {
|
||||||
|
last_prim->concat(elements[n]);
|
||||||
|
last_prim = &elements[n];
|
||||||
|
}
|
||||||
|
|
||||||
|
last_prim->terminate();
|
||||||
|
return last_prim;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, size_t N>
|
||||||
|
static Link* link_array(Link* last_prim, T(&elements)[N]) {
|
||||||
|
return link_array(last_prim, elements, N);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -70,6 +70,7 @@ namespace JabyEngine {
|
||||||
Body points[N];
|
Body points[N];
|
||||||
Termination end;
|
Termination end;
|
||||||
|
|
||||||
|
// Could also be none const in the future
|
||||||
template<typename T = Body>
|
template<typename T = Body>
|
||||||
constexpr typename enable_if<is_same<T, Vertex>::value, Vertex>::type operator[](size_t idx) const {
|
constexpr typename enable_if<is_same<T, Vertex>::value, Vertex>::type operator[](size_t idx) const {
|
||||||
if(idx == 0) {
|
if(idx == 0) {
|
||||||
|
|
Loading…
Reference in New Issue