Skip to content

Commit

Permalink
Added lvk::Span
Browse files Browse the repository at this point in the history
  • Loading branch information
corporateshark committed Aug 17, 2024
1 parent a9570ca commit 5f72871
Showing 1 changed file with 44 additions and 0 deletions.
44 changes: 44 additions & 0 deletions lvk/LVK.h
Original file line number Diff line number Diff line change
Expand Up @@ -501,6 +501,50 @@ enum ShaderStage : uint8_t {
kNumShaderStages,
};

template <typename T>
class Span {
public:
Span() = default;
Span(T* data, size_t numElements) : data_(data), numElements_(numElements) {}
const T& operator[](size_t idx) const {
return data_[idx];
};
T& operator[](size_t idx) {
return data_[idx];
};
size_t size() const {
return numElements_;
}
size_t size_bytes() const {
return sizeof(T) * numElements_;
}
bool empty() const {
return numElements_ == 0;
}
T* data() {
return data_;
}
const T* data() const {
return data_;
}
T* begin() {
return data_;
}
const T* begin() const {
return data_;
}
T* end() {
return data_ + numElements_;
}
const T* end() const {
return data_ + numElements_;
}

private:
T* data_ = nullptr;
size_t numElements_ = 0;
};

struct VertexInput final {
enum { IGL_VERTEX_ATTRIBUTES_MAX = 16 };
enum { IGL_VERTEX_BUFFER_MAX = 16 };
Expand Down

0 comments on commit 5f72871

Please sign in to comment.