mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-07-07 09:25:52 +00:00
Better CMake dependency handling
This commit is contained in:
parent
285140426d
commit
0c45eb56c7
@ -1,35 +1,12 @@
|
|||||||
add_subdirectory(freetype2)
|
add_subdirectory(freetype2)
|
||||||
add_definitions("-DZE_ATHENA_TYPES=1")
|
if (NOT MSVC)
|
||||||
|
target_compile_options(freetype PRIVATE -Wno-implicit-fallthrough)
|
||||||
|
endif()
|
||||||
add_subdirectory(zeus)
|
add_subdirectory(zeus)
|
||||||
set(ZEUS_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/zeus/include)
|
set(ZEUS_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/zeus/include)
|
||||||
|
|
||||||
if(NOT DEFINED HECL_INCLUDE_DIR)
|
|
||||||
message(FATAL_ERROR "Specter may only be built as a sub-project containing hecl with
|
|
||||||
HECL_INCLUDE_DIR set")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT DEFINED BOO_INCLUDE_DIR)
|
|
||||||
message(FATAL_ERROR "Specter may only be built as a sub-project containing boo with
|
|
||||||
BOO_INCLUDE_DIR set")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT DEFINED ATHENA_INCLUDE_DIR)
|
|
||||||
message(FATAL_ERROR "Specter may only be built as a sub-project containing Athena with
|
|
||||||
ATHENA_INCLUDE_DIR set")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT DEFINED LOGVISOR_INCLUDE_DIR)
|
|
||||||
message(FATAL_ERROR "Specter may only be built as a sub-project containing logvisor with
|
|
||||||
LOGVISOR_INCLUDE_DIR set")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_subdirectory(resources/fonts)
|
add_subdirectory(resources/fonts)
|
||||||
|
|
||||||
include_directories(include ${HECL_INCLUDE_DIR} ${BOO_INCLUDE_DIR}
|
|
||||||
${LOGVISOR_INCLUDE_DIR} ${ATHENA_INCLUDE_DIR}
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/freetype2/include
|
|
||||||
${ZEUS_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR})
|
|
||||||
|
|
||||||
list(APPEND SPECTER_HEADERS
|
list(APPEND SPECTER_HEADERS
|
||||||
include/specter/specter.hpp
|
include/specter/specter.hpp
|
||||||
include/specter/ViewResources.hpp
|
include/specter/ViewResources.hpp
|
||||||
@ -63,8 +40,6 @@ list(APPEND SPECTER_HEADERS
|
|||||||
include/specter/Translator.hpp
|
include/specter/Translator.hpp
|
||||||
include/specter/genie.hpp)
|
include/specter/genie.hpp)
|
||||||
|
|
||||||
atdna(atdna_FontCache.cpp include/specter/FontCache.hpp)
|
|
||||||
|
|
||||||
list(APPEND SPECTER_SOURCES
|
list(APPEND SPECTER_SOURCES
|
||||||
lib/ViewResources.cpp
|
lib/ViewResources.cpp
|
||||||
lib/View.cpp
|
lib/View.cpp
|
||||||
@ -87,8 +62,9 @@ list(APPEND SPECTER_SOURCES
|
|||||||
lib/FileBrowser.cpp
|
lib/FileBrowser.cpp
|
||||||
lib/Icon.cpp
|
lib/Icon.cpp
|
||||||
lib/FontCache.cpp
|
lib/FontCache.cpp
|
||||||
lib/Translator.cpp
|
lib/Translator.cpp)
|
||||||
atdna_FontCache.cpp)
|
|
||||||
|
|
||||||
add_library(specter ${SPECTER_SOURCES} ${SPECTER_HEADERS})
|
add_library(specter ${SPECTER_SOURCES} ${SPECTER_HEADERS})
|
||||||
add_dependencies(specter hecl-light)
|
target_link_libraries(specter PUBLIC specter-fonts freetype hecl-full zeus)
|
||||||
|
target_include_directories(specter PUBLIC include freetype2/include)
|
||||||
|
target_atdna(specter atdna_FontCache.cpp include/specter/FontCache.hpp)
|
||||||
|
@ -186,7 +186,7 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void setSelectedRow(size_t rIdx) {
|
void setSelectedRow(size_t rIdx) {
|
||||||
if (rIdx != -1)
|
if (rIdx != SIZE_MAX)
|
||||||
m_fb.m_fileField.m_view->setText(m_entries.at(rIdx).m_name);
|
m_fb.m_fileField.m_view->setText(m_entries.at(rIdx).m_name);
|
||||||
else
|
else
|
||||||
m_fb.m_fileField.m_view->setText("");
|
m_fb.m_fileField.m_view->setText("");
|
||||||
@ -239,7 +239,7 @@ private:
|
|||||||
std::string_view cell(size_t, size_t rIdx) const { return m_entries.at(rIdx).m_name; }
|
std::string_view cell(size_t, size_t rIdx) const { return m_entries.at(rIdx).m_name; }
|
||||||
|
|
||||||
void setSelectedRow(size_t rIdx) {
|
void setSelectedRow(size_t rIdx) {
|
||||||
if (rIdx != -1)
|
if (rIdx != SIZE_MAX)
|
||||||
m_fb.navigateToPath(m_entries.at(rIdx).m_path);
|
m_fb.navigateToPath(m_entries.at(rIdx).m_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
namespace specter {
|
namespace specter {
|
||||||
|
|
||||||
struct IMenuNode {
|
struct IMenuNode {
|
||||||
|
virtual ~IMenuNode() = default;
|
||||||
virtual boo::ITexture* icon() const { return nullptr; }
|
virtual boo::ITexture* icon() const { return nullptr; }
|
||||||
virtual const std::string* text() const { return nullptr; }
|
virtual const std::string* text() const { return nullptr; }
|
||||||
virtual size_t subNodeCount() const { return 0; }
|
virtual size_t subNodeCount() const { return 0; }
|
||||||
|
@ -39,13 +39,13 @@ public:
|
|||||||
operator bool() const { return m_tex; }
|
operator bool() const { return m_tex; }
|
||||||
void initializeAtlas(const boo::ObjToken<boo::ITextureS>& tex) {
|
void initializeAtlas(const boo::ObjToken<boo::ITextureS>& tex) {
|
||||||
m_tex = tex;
|
m_tex = tex;
|
||||||
for (int c = 0; c < COLS; ++c)
|
for (size_t c = 0; c < COLS; ++c)
|
||||||
for (int r = 0; r < ROWS; ++r)
|
for (size_t r = 0; r < ROWS; ++r)
|
||||||
m_icons[c][r] = MakeIcon(c, r);
|
m_icons[c][r] = MakeIcon(c, r);
|
||||||
}
|
}
|
||||||
void destroyAtlas() {
|
void destroyAtlas() {
|
||||||
for (int c = 0; c < COLS; ++c)
|
for (size_t c = 0; c < COLS; ++c)
|
||||||
for (int r = 0; r < ROWS; ++r)
|
for (size_t r = 0; r < ROWS; ++r)
|
||||||
m_icons[c][r].m_tex.reset();
|
m_icons[c][r].m_tex.reset();
|
||||||
m_tex.reset();
|
m_tex.reset();
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ class Menu : public View {
|
|||||||
SolidShaderVert m_hlVerts[4];
|
SolidShaderVert m_hlVerts[4];
|
||||||
VertexBufferBindingSolid m_hlVertsBinding;
|
VertexBufferBindingSolid m_hlVertsBinding;
|
||||||
|
|
||||||
size_t m_highlightedItem = -1;
|
size_t m_highlightedItem = SIZE_MAX;
|
||||||
void setHighlightedItem(size_t idx);
|
void setHighlightedItem(size_t idx);
|
||||||
void unsetHighlightedItem(size_t idx) {
|
void unsetHighlightedItem(size_t idx) {
|
||||||
if (m_highlightedItem == idx)
|
if (m_highlightedItem == idx)
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
#include "FontCache.hpp"
|
#include "FontCache.hpp"
|
||||||
#include "IMenuNode.hpp"
|
#include "IMenuNode.hpp"
|
||||||
#include "IViewManager.hpp"
|
#include "IViewManager.hpp"
|
||||||
#include "optional.hpp"
|
#include <optional>
|
||||||
#include "boo/boo.hpp"
|
#include "boo/boo.hpp"
|
||||||
|
|
||||||
namespace specter {
|
namespace specter {
|
||||||
@ -99,7 +99,7 @@ class RootView : public View {
|
|||||||
}
|
}
|
||||||
} m_joinActionNode;
|
} m_joinActionNode;
|
||||||
};
|
};
|
||||||
std::experimental::optional<SplitMenuSystem> m_splitMenuSystem;
|
std::optional<SplitMenuSystem> m_splitMenuSystem;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
RootView(IViewManager& viewMan, ViewResources& res, boo::IWindow* window);
|
RootView(IViewManager& viewMan, ViewResources& res, boo::IWindow* window);
|
||||||
|
@ -37,14 +37,14 @@ class Table : public View {
|
|||||||
size_t m_maxColumns;
|
size_t m_maxColumns;
|
||||||
size_t m_rows = 0;
|
size_t m_rows = 0;
|
||||||
size_t m_columns = 0;
|
size_t m_columns = 0;
|
||||||
size_t m_selectedRow = -1;
|
size_t m_selectedRow = SIZE_MAX;
|
||||||
size_t m_deferredActivation = -1;
|
size_t m_deferredActivation = SIZE_MAX;
|
||||||
size_t m_clickFrames = 15;
|
size_t m_clickFrames = 15;
|
||||||
|
|
||||||
struct CellView : public View {
|
struct CellView : public View {
|
||||||
Table& m_t;
|
Table& m_t;
|
||||||
std::unique_ptr<TextView> m_text;
|
std::unique_ptr<TextView> m_text;
|
||||||
size_t m_c, m_r;
|
size_t m_c = SIZE_MAX, m_r = SIZE_MAX;
|
||||||
boo::SWindowRect m_scissorRect;
|
boo::SWindowRect m_scissorRect;
|
||||||
uint64_t m_textHash = 0;
|
uint64_t m_textHash = 0;
|
||||||
CellView(Table& t, ViewResources& res);
|
CellView(Table& t, ViewResources& res);
|
||||||
@ -68,7 +68,7 @@ class Table : public View {
|
|||||||
std::vector<ColumnPool> m_cellPools;
|
std::vector<ColumnPool> m_cellPools;
|
||||||
size_t m_ensuredRows = 0;
|
size_t m_ensuredRows = 0;
|
||||||
std::vector<ColumnPool>& ensureCellPools(size_t rows, size_t cols, ViewResources& res);
|
std::vector<ColumnPool>& ensureCellPools(size_t rows, size_t cols, ViewResources& res);
|
||||||
size_t m_activePool = -1;
|
size_t m_activePool = SIZE_MAX;
|
||||||
bool m_header = false;
|
bool m_header = false;
|
||||||
|
|
||||||
std::vector<boo::SWindowRect> m_hCellRects;
|
std::vector<boo::SWindowRect> m_hCellRects;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "boo/boo.hpp"
|
#include "boo/boo.hpp"
|
||||||
#include "optional.hpp"
|
#include <optional>
|
||||||
#include "zeus/CVector3f.hpp"
|
#include "zeus/CVector3f.hpp"
|
||||||
#include "zeus/CMatrix4f.hpp"
|
#include "zeus/CMatrix4f.hpp"
|
||||||
#include "zeus/CTransform.hpp"
|
#include "zeus/CTransform.hpp"
|
||||||
|
@ -112,14 +112,14 @@ void Menu::setVerts(int width, int height, float pf) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Menu::ContentView::setHighlightedItem(size_t idx) {
|
void Menu::ContentView::setHighlightedItem(size_t idx) {
|
||||||
if (idx == -1) {
|
if (idx == SIZE_MAX) {
|
||||||
m_highlightedItem = -1;
|
m_highlightedItem = SIZE_MAX;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ViewChild<std::unique_ptr<ItemView>>& vc = m_menu.m_items[idx];
|
ViewChild<std::unique_ptr<ItemView>>& vc = m_menu.m_items[idx];
|
||||||
|
|
||||||
if (!vc.m_view) {
|
if (!vc.m_view) {
|
||||||
m_highlightedItem = -1;
|
m_highlightedItem = SIZE_MAX;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -250,7 +250,7 @@ void Menu::draw(boo::IGraphicsCommandQueue* gfxQ) {
|
|||||||
void Menu::ContentView::draw(boo::IGraphicsCommandQueue* gfxQ) {
|
void Menu::ContentView::draw(boo::IGraphicsCommandQueue* gfxQ) {
|
||||||
View::draw(gfxQ);
|
View::draw(gfxQ);
|
||||||
gfxQ->setScissor(m_scissorRect);
|
gfxQ->setScissor(m_scissorRect);
|
||||||
if (m_highlightedItem != -1) {
|
if (m_highlightedItem != SIZE_MAX) {
|
||||||
gfxQ->setShaderDataBinding(m_hlVertsBinding);
|
gfxQ->setShaderDataBinding(m_hlVertsBinding);
|
||||||
gfxQ->draw(0, 4);
|
gfxQ->draw(0, 4);
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ static logvisor::Module Log("specter::MultiLineTextView");
|
|||||||
std::string MultiLineTextView::LineWrap(std::string_view str, int wrap) {
|
std::string MultiLineTextView::LineWrap(std::string_view str, int wrap) {
|
||||||
size_t rem = str.size();
|
size_t rem = str.size();
|
||||||
const utf8proc_uint8_t* it = reinterpret_cast<const utf8proc_uint8_t*>(str.data());
|
const utf8proc_uint8_t* it = reinterpret_cast<const utf8proc_uint8_t*>(str.data());
|
||||||
uint32_t lCh = -1;
|
uint32_t lCh = UINT32_MAX;
|
||||||
int adv = 0;
|
int adv = 0;
|
||||||
|
|
||||||
std::string ret;
|
std::string ret;
|
||||||
@ -37,14 +37,14 @@ std::string MultiLineTextView::LineWrap(std::string_view str, int wrap) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lCh != -1)
|
if (lCh != UINT32_MAX)
|
||||||
adv += TextView::DoKern(m_fontAtlas.lookupKern(lCh, glyph->m_glyphIdx), m_fontAtlas);
|
adv += TextView::DoKern(m_fontAtlas.lookupKern(lCh, glyph->m_glyphIdx), m_fontAtlas);
|
||||||
adv += glyph->m_advance;
|
adv += glyph->m_advance;
|
||||||
|
|
||||||
if (adv > wrap && lastSpaceIt) {
|
if (adv > wrap && lastSpaceIt) {
|
||||||
ret.assign(ret.cbegin(), ret.cbegin() + rollbackPos);
|
ret.assign(ret.cbegin(), ret.cbegin() + rollbackPos);
|
||||||
ret += '\n';
|
ret += '\n';
|
||||||
lCh = -1;
|
lCh = UINT32_MAX;
|
||||||
rem = lastSpaceRem;
|
rem = lastSpaceRem;
|
||||||
it = lastSpaceIt;
|
it = lastSpaceIt;
|
||||||
lastSpaceIt = nullptr;
|
lastSpaceIt = nullptr;
|
||||||
@ -68,7 +68,7 @@ std::string MultiLineTextView::LineWrap(std::string_view str, int wrap) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::wstring MultiLineTextView::LineWrap(std::wstring_view str, int wrap) {
|
std::wstring MultiLineTextView::LineWrap(std::wstring_view str, int wrap) {
|
||||||
uint32_t lCh = -1;
|
uint32_t lCh = UINT32_MAX;
|
||||||
int adv = 0;
|
int adv = 0;
|
||||||
|
|
||||||
std::wstring ret;
|
std::wstring ret;
|
||||||
@ -89,14 +89,14 @@ std::wstring MultiLineTextView::LineWrap(std::wstring_view str, int wrap) {
|
|||||||
if (!glyph)
|
if (!glyph)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (lCh != -1)
|
if (lCh != UINT32_MAX)
|
||||||
adv += TextView::DoKern(m_fontAtlas.lookupKern(lCh, glyph->m_glyphIdx), m_fontAtlas);
|
adv += TextView::DoKern(m_fontAtlas.lookupKern(lCh, glyph->m_glyphIdx), m_fontAtlas);
|
||||||
adv += glyph->m_advance;
|
adv += glyph->m_advance;
|
||||||
|
|
||||||
if (adv > wrap && lastSpaceIt != str.cend()) {
|
if (adv > wrap && lastSpaceIt != str.cend()) {
|
||||||
ret.assign(ret.cbegin(), ret.cbegin() + rollbackPos);
|
ret.assign(ret.cbegin(), ret.cbegin() + rollbackPos);
|
||||||
ret += L'\n';
|
ret += L'\n';
|
||||||
lCh = -1;
|
lCh = UINT32_MAX;
|
||||||
it = lastSpaceIt;
|
it = lastSpaceIt;
|
||||||
lastSpaceIt = str.cend();
|
lastSpaceIt = str.cend();
|
||||||
adv = 0;
|
adv = 0;
|
||||||
|
@ -41,7 +41,7 @@ Table::RowsView::RowsView(Table& t, ViewResources& res)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Table::CellView::CellView(Table& t, ViewResources& res)
|
Table::CellView::CellView(Table& t, ViewResources& res)
|
||||||
: View(res, t), m_t(t), m_text(new TextView(res, *this, res.m_mainFont)), m_c(-1), m_r(-1) {}
|
: View(res, t), m_t(t), m_text(new TextView(res, *this, res.m_mainFont)) {}
|
||||||
|
|
||||||
void Table::_setHeaderVerts(const boo::SWindowRect& sub) {
|
void Table::_setHeaderVerts(const boo::SWindowRect& sub) {
|
||||||
;
|
;
|
||||||
@ -164,7 +164,7 @@ void Table::RowsView::_setRowVerts(const boo::SWindowRect& sub, const boo::SWind
|
|||||||
}
|
}
|
||||||
m_visibleStart = std::max(0, startIdx);
|
m_visibleStart = std::max(0, startIdx);
|
||||||
m_visibleRows = r;
|
m_visibleRows = r;
|
||||||
if (r * c)
|
if (r && c)
|
||||||
m_vertsBinding.load(m_verts.get(), 6 * r * c);
|
m_vertsBinding.load(m_verts.get(), 6 * r * c);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,7 +186,7 @@ void Table::cycleSortColumn(size_t c) {
|
|||||||
void Table::selectRow(size_t r) {
|
void Table::selectRow(size_t r) {
|
||||||
if (m_inSelectRow)
|
if (m_inSelectRow)
|
||||||
return;
|
return;
|
||||||
if (r >= m_rows && r != -1)
|
if (r >= m_rows && r != SIZE_MAX)
|
||||||
Log.report(logvisor::Fatal, "selectRow out of bounds (%" PRISize ", %" PRISize ")", r, m_rows);
|
Log.report(logvisor::Fatal, "selectRow out of bounds (%" PRISize ", %" PRISize ")", r, m_rows);
|
||||||
if (r == m_selectedRow) {
|
if (r == m_selectedRow) {
|
||||||
if (m_state) {
|
if (m_state) {
|
||||||
@ -197,7 +197,7 @@ void Table::selectRow(size_t r) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_selectedRow != -1 && m_activePool != -1) {
|
if (m_selectedRow != SIZE_MAX && m_activePool != SIZE_MAX) {
|
||||||
size_t poolIdx = m_selectedRow / SPECTER_TABLE_MAX_ROWS;
|
size_t poolIdx = m_selectedRow / SPECTER_TABLE_MAX_ROWS;
|
||||||
int pool0 = (poolIdx & 1) != 0;
|
int pool0 = (poolIdx & 1) != 0;
|
||||||
int pool1 = (poolIdx & 1) == 0;
|
int pool1 = (poolIdx & 1) == 0;
|
||||||
@ -218,7 +218,7 @@ void Table::selectRow(size_t r) {
|
|||||||
|
|
||||||
m_selectedRow = r;
|
m_selectedRow = r;
|
||||||
|
|
||||||
if (m_selectedRow != -1 && m_activePool != -1) {
|
if (m_selectedRow != SIZE_MAX && m_activePool != SIZE_MAX) {
|
||||||
size_t poolIdx = m_selectedRow / SPECTER_TABLE_MAX_ROWS;
|
size_t poolIdx = m_selectedRow / SPECTER_TABLE_MAX_ROWS;
|
||||||
int pool0 = (poolIdx & 1) != 0;
|
int pool0 = (poolIdx & 1) != 0;
|
||||||
int pool1 = (poolIdx & 1) == 0;
|
int pool1 = (poolIdx & 1) == 0;
|
||||||
@ -296,9 +296,9 @@ void Table::mouseDown(const boo::SWindowCoord& coord, boo::EMouseButton button,
|
|||||||
if (m_headerNeedsUpdate)
|
if (m_headerNeedsUpdate)
|
||||||
_setHeaderVerts(subRect());
|
_setHeaderVerts(subRect());
|
||||||
|
|
||||||
if (m_deferredActivation != -1 && m_state) {
|
if (m_deferredActivation != SIZE_MAX && m_state) {
|
||||||
m_state->rowActivated(m_deferredActivation);
|
m_state->rowActivated(m_deferredActivation);
|
||||||
m_deferredActivation = -1;
|
m_deferredActivation = SIZE_MAX;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -315,7 +315,7 @@ void Table::RowsView::mouseDown(const boo::SWindowCoord& coord, boo::EMouseButto
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Table::CellView::mouseDown(const boo::SWindowCoord& coord, boo::EMouseButton button, boo::EModifierKey mod) {
|
void Table::CellView::mouseDown(const boo::SWindowCoord& coord, boo::EMouseButton button, boo::EModifierKey mod) {
|
||||||
if (m_r != -1) {
|
if (m_r != SIZE_MAX) {
|
||||||
m_t.selectRow(m_r);
|
m_t.selectRow(m_r);
|
||||||
if (m_t.m_clickFrames < 15)
|
if (m_t.m_clickFrames < 15)
|
||||||
m_t.m_deferredActivation = m_r;
|
m_t.m_deferredActivation = m_r;
|
||||||
@ -352,7 +352,7 @@ void Table::RowsView::mouseUp(const boo::SWindowCoord& coord, boo::EMouseButton
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Table::CellView::mouseUp(const boo::SWindowCoord& coord, boo::EMouseButton button, boo::EModifierKey mod) {
|
void Table::CellView::mouseUp(const boo::SWindowCoord& coord, boo::EMouseButton button, boo::EModifierKey mod) {
|
||||||
if (m_r == -1)
|
if (m_r == SIZE_MAX)
|
||||||
m_t.m_headerNeedsUpdate = true;
|
m_t.m_headerNeedsUpdate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -413,7 +413,7 @@ void Table::mouseEnter(const boo::SWindowCoord& coord) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Table::CellView::mouseEnter(const boo::SWindowCoord& coord) {
|
void Table::CellView::mouseEnter(const boo::SWindowCoord& coord) {
|
||||||
if (m_r == -1)
|
if (m_r == SIZE_MAX)
|
||||||
m_t.m_headerNeedsUpdate = true;
|
m_t.m_headerNeedsUpdate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -435,7 +435,7 @@ void Table::RowsView::mouseLeave(const boo::SWindowCoord& coord) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Table::CellView::mouseLeave(const boo::SWindowCoord& coord) {
|
void Table::CellView::mouseLeave(const boo::SWindowCoord& coord) {
|
||||||
if (m_r == -1)
|
if (m_r == SIZE_MAX)
|
||||||
m_t.m_headerNeedsUpdate = true;
|
m_t.m_headerNeedsUpdate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ void TextView::typesetGlyphs(std::string_view str, const zeus::CColor& defaultCo
|
|||||||
_commitResources(charLen);
|
_commitResources(charLen);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t lCh = -1;
|
uint32_t lCh = UINT32_MAX;
|
||||||
m_glyphs.clear();
|
m_glyphs.clear();
|
||||||
m_glyphs.reserve(charLen);
|
m_glyphs.reserve(charLen);
|
||||||
m_glyphInfo.clear();
|
m_glyphInfo.clear();
|
||||||
@ -115,7 +115,7 @@ void TextView::typesetGlyphs(std::string_view str, const zeus::CColor& defaultCo
|
|||||||
if (!glyph)
|
if (!glyph)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (lCh != -1)
|
if (lCh != UINT32_MAX)
|
||||||
adv += DoKern(m_fontAtlas.lookupKern(lCh, glyph->m_glyphIdx), m_fontAtlas);
|
adv += DoKern(m_fontAtlas.lookupKern(lCh, glyph->m_glyphIdx), m_fontAtlas);
|
||||||
m_glyphs.emplace_back(adv, *glyph, defaultColor);
|
m_glyphs.emplace_back(adv, *glyph, defaultColor);
|
||||||
m_glyphInfo.emplace_back(ch, glyph->m_width, glyph->m_height, adv);
|
m_glyphInfo.emplace_back(ch, glyph->m_width, glyph->m_height, adv);
|
||||||
@ -157,7 +157,7 @@ void TextView::typesetGlyphs(std::wstring_view str, const zeus::CColor& defaultC
|
|||||||
_commitResources(charLen);
|
_commitResources(charLen);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t lCh = -1;
|
uint32_t lCh = UINT32_MAX;
|
||||||
m_glyphs.clear();
|
m_glyphs.clear();
|
||||||
m_glyphs.reserve(charLen);
|
m_glyphs.reserve(charLen);
|
||||||
m_glyphInfo.clear();
|
m_glyphInfo.clear();
|
||||||
@ -172,7 +172,7 @@ void TextView::typesetGlyphs(std::wstring_view str, const zeus::CColor& defaultC
|
|||||||
if (!glyph)
|
if (!glyph)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (lCh != -1)
|
if (lCh != UINT32_MAX)
|
||||||
adv += DoKern(m_fontAtlas.lookupKern(lCh, glyph->m_glyphIdx), m_fontAtlas);
|
adv += DoKern(m_fontAtlas.lookupKern(lCh, glyph->m_glyphIdx), m_fontAtlas);
|
||||||
m_glyphs.emplace_back(adv, *glyph, defaultColor);
|
m_glyphs.emplace_back(adv, *glyph, defaultColor);
|
||||||
m_glyphInfo.emplace_back(ch, glyph->m_width, glyph->m_height, adv);
|
m_glyphInfo.emplace_back(ch, glyph->m_width, glyph->m_height, adv);
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 6c13d089fe5c0828fb6111c874e09c47e1c1bddd
|
Subproject commit c81eb93b6d008b4bbf09df6ead11a4109c5fd105
|
Loading…
x
Reference in New Issue
Block a user