Added offset x/y in params

pull/28/head
FlightlessMango 4 years ago
parent 2590426ef6
commit 3c4fcda623

@ -59,8 +59,6 @@ bool open = false, displayHud = true;
string gpuString;
float offset_x, offset_y, hudSpacing;
int hudFirstRow, hudSecondRow, frameOverhead = 0, sleepTime = 0;
const char* offset_x_env = std::getenv("X_OFFSET");
const char* offset_y_env = std::getenv("Y_OFFSET");
string engineName, engineVersion;
ImFont* font = nullptr;
ImFont* font1 = nullptr;
@ -1078,36 +1076,29 @@ static void position_layer(struct swapchain_data *data)
struct device_data *device_data = data->device;
struct instance_data *instance_data = device_data->instance;
float margin = 10.0f;
if (offset_x_env)
if (instance_data->params.offset_x > 0 || instance_data->params.offset_y > 0)
margin = 0.0f;
ImGui::SetNextWindowBgAlpha(0.5);
ImGui::SetNextWindowSize(ImVec2(instance_data->params.width, instance_data->params.height), ImGuiCond_Always);
ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f);
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(8,-3));
if (offset_x_env)
offset_x = std::stof(offset_x_env);
if (offset_y_env)
offset_y = std::stof(offset_y_env);
switch (instance_data->params.position) {
case LAYER_POSITION_TOP_LEFT:
ImGui::SetNextWindowPos(ImVec2(margin + offset_x, margin + offset_y), ImGuiCond_Always);
ImGui::SetNextWindowPos(ImVec2(margin + instance_data->params.offset_x, margin + instance_data->params.offset_y), ImGuiCond_Always);
break;
case LAYER_POSITION_TOP_RIGHT:
ImGui::SetNextWindowPos(ImVec2(data->width - data->window_size.x - margin, margin),
ImGui::SetNextWindowPos(ImVec2(data->width - data->window_size.x - margin + instance_data->params.offset_x, margin + instance_data->params.offset_y),
ImGuiCond_Always);
break;
case LAYER_POSITION_BOTTOM_LEFT:
ImGui::SetNextWindowPos(ImVec2(margin, data->height - data->window_size.y - margin),
ImGui::SetNextWindowPos(ImVec2(margin + instance_data->params.offset_x, data->height - data->window_size.y - margin + instance_data->params.offset_y),
ImGuiCond_Always);
break;
case LAYER_POSITION_BOTTOM_RIGHT:
ImGui::SetNextWindowPos(ImVec2(data->width - data->window_size.x - margin,
data->height - data->window_size.y - margin),
ImGui::SetNextWindowPos(ImVec2(data->width - data->window_size.x - margin + instance_data->params.offset_x,
data->height - data->window_size.y - margin + instance_data->params.offset_y),
ImGuiCond_Always);
break;
}

@ -100,12 +100,6 @@ parse_fps_limit(const char *str)
return strtol(str, NULL, 0);
}
static uint32_t
parse_vsync(const char *str)
{
return strtol(str, NULL, 0);
}
static uint32_t
parse_crosshair_size(const char *str)
{
@ -127,6 +121,8 @@ parse_unsigned(const char *str)
#define parse_width(s) parse_unsigned(s)
#define parse_height(s) parse_unsigned(s)
#define parse_vsync(s) parse_unsigned(s)
#define parse_offset_x(s) parse_unsigned(s)
#define parse_offset_y(s) parse_unsigned(s)
static bool
parse_help(const char *str)
@ -222,6 +218,8 @@ parse_overlay_env(struct overlay_params *params,
params->fps_limit = 0;
params->vsync = -1;
params->crosshair_size = 30;
params->offset_x = 0;
params->offset_y = 0;
// Get config options
parseConfigFile();

@ -60,6 +60,8 @@ extern "C" {
OVERLAY_PARAM_CUSTOM(toggle_hud) \
OVERLAY_PARAM_CUSTOM(toggle_logging) \
OVERLAY_PARAM_CUSTOM(crosshair_size) \
OVERLAY_PARAM_CUSTOM(offset_x) \
OVERLAY_PARAM_CUSTOM(offset_y) \
OVERLAY_PARAM_CUSTOM(help)
enum overlay_param_position {
@ -90,6 +92,8 @@ struct overlay_params {
bool no_display;
unsigned width;
unsigned height;
unsigned offset_x;
unsigned offset_y;
unsigned vsync;
float font_size;
KeySym toggle_hud;

Loading…
Cancel
Save