From be8017cdff88a7f40b4b003e74fa1611304becad Mon Sep 17 00:00:00 2001 From: Yuxuan Shui Date: Mon, 6 May 2019 01:24:38 +0100 Subject: [PATCH] common.h: general clean up Remove unused functions and definitions. Move some macros into the files they belong. Signed-off-by: Yuxuan Shui --- src/atom.c | 5 +- src/backend/backend.c | 9 +-- src/common.h | 149 +----------------------------------------- src/compton.c | 14 ++-- src/opengl.c | 4 ++ src/render.c | 9 +++ src/win.c | 1 + 7 files changed, 24 insertions(+), 167 deletions(-) diff --git a/src/atom.c b/src/atom.c index e645f585..4f622744 100644 --- a/src/atom.c +++ b/src/atom.c @@ -4,9 +4,6 @@ #include "common.h" #include "utils.h" -/** - * Wrapper of XInternAtom() for convenience. - */ static inline void *atom_getter(void *ud, const char *atom_name, int *err) { xcb_connection_t *c = ud; xcb_intern_atom_reply_t *reply = xcb_intern_atom_reply( @@ -25,7 +22,7 @@ static inline void *atom_getter(void *ud, const char *atom_name, int *err) { } /** - * Fetch all required atoms and save them to a session. + * Create a new atom structure and fetch all predefined atoms */ struct atom *init_atoms(xcb_connection_t *c) { auto atoms = ccalloc(1, struct atom); diff --git a/src/backend/backend.c b/src/backend/backend.c index 8399142e..439cb037 100644 --- a/src/backend/backend.c +++ b/src/backend/backend.c @@ -277,17 +277,14 @@ void paint_all_new(session_t *ps, struct managed_win *t, bool ignore_damage) { } #ifdef DEBUG_REPAINT - print_timestamp(ps); struct timespec now = get_time_timespec(); struct timespec diff = {0}; timespec_subtract(&diff, &now, &last_paint); - printf("[ %5ld:%09ld ] ", diff.tv_sec, diff.tv_nsec); + log_trace("[ %5ld:%09ld ] ", diff.tv_sec, diff.tv_nsec); last_paint = now; - printf("paint:"); + log_trace("paint:"); for (win *w = t; w; w = w->prev_trans) - printf(" %#010lx", w->id); - putchar('\n'); - fflush(stdout); + log_trace(" %#010lx", w->id); #endif } diff --git a/src/common.h b/src/common.h index f6a2aaf7..a2a0c081 100644 --- a/src/common.h +++ b/src/common.h @@ -38,7 +38,6 @@ #include #include -#include #include #include #include @@ -51,19 +50,7 @@ #include "uthash_extra.h" #ifdef CONFIG_OPENGL -// libGL #include "backend/gl/glx.h" - -// Workarounds for missing definitions in some broken GL drivers, thanks to -// douglasp and consolers for reporting -#ifndef GL_TEXTURE_RECTANGLE -#define GL_TEXTURE_RECTANGLE 0x84F5 -#endif - -#ifndef GLX_BACK_BUFFER_AGE_EXT -#define GLX_BACK_BUFFER_AGE_EXT 0x20F4 -#endif - #endif // === Macros === @@ -92,26 +79,15 @@ // === Constants === -/// @brief Length of generic buffers. -#define BUF_LEN 80 - #define ROUNDED_PERCENT 0.05 #define ROUNDED_PIXELS 10 -#define REGISTER_PROP "_NET_WM_CM_S" - -#define TIME_MS_MAX LONG_MAX #define SWOPTI_TOLERANCE 3000 -#define WIN_GET_LEADER_MAX_RECURSION 20 #define NS_PER_SEC 1000000000L #define US_PER_SEC 1000000L #define MS_PER_SEC 1000 -#define XRFILTER_CONVOLUTION "convolution" -#define XRFILTER_GAUSSIAN "gaussian" -#define XRFILTER_BINOMIAL "binomial" - /// @brief Maximum OpenGL FBConfig depth. #define OPENGL_MAX_DEPTH 32 @@ -173,16 +149,6 @@ typedef void (*GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severi typedef void (*f_DebugMessageCallback)(GLDEBUGPROC, void *userParam); #endif -#ifdef CONFIG_OPENGL -typedef GLsync (*f_FenceSync)(GLenum condition, GLbitfield flags); -typedef GLboolean (*f_IsSync)(GLsync sync); -typedef void (*f_DeleteSync)(GLsync sync); -typedef GLenum (*f_ClientWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (*f_WaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef GLsync (*f_ImportSyncEXT)(GLenum external_sync_type, GLintptr external_sync, - GLbitfield flags); -#endif - /// @brief Wrapper of a binded GLX texture. struct _glx_texture { GLuint texture; @@ -247,29 +213,15 @@ typedef struct { GLXContext context; /// Whether we have GL_ARB_texture_non_power_of_two. bool has_texture_non_power_of_two; - /// Pointer to the glFenceSync() function. - f_FenceSync glFenceSyncProc; - /// Pointer to the glIsSync() function. - f_IsSync glIsSyncProc; - /// Pointer to the glDeleteSync() function. - f_DeleteSync glDeleteSyncProc; - /// Pointer to the glClientWaitSync() function. - f_ClientWaitSync glClientWaitSyncProc; - /// Pointer to the glWaitSync() function. - f_WaitSync glWaitSyncProc; - /// Pointer to the glImportSyncEXT() function. - f_ImportSyncEXT glImportSyncEXT; /// Current GLX Z value. int z; -#ifdef CONFIG_OPENGL glx_blur_pass_t blur_passes[MAX_BLUR_PASS]; -#endif } glx_session_t; #define CGLX_SESSION_INIT \ { .context = NULL } -#endif +#endif // CONFIG_OPENGL /// Structure containing all necessary data for a compton session. typedef struct session { @@ -523,85 +475,10 @@ typedef enum { WIN_EVMODE_UNKNOWN, WIN_EVMODE_FRAME, WIN_EVMODE_CLIENT } win_evm extern const char *const WINTYPES[NUM_WINTYPES]; extern session_t *ps_g; -// == Debugging code == -static inline void print_timestamp(session_t *ps); - void ev_xcb_error(session_t *ps, xcb_generic_error_t *err); // === Functions === -/** - * Return whether a struct timeval value is empty. - */ -static inline bool timeval_isempty(struct timeval *ptv) { - if (!ptv) - return false; - - return ptv->tv_sec <= 0 && ptv->tv_usec <= 0; -} - -/** - * Compare a struct timeval with a time in milliseconds. - * - * @return > 0 if ptv > ms, 0 if ptv == 0, -1 if ptv < ms - */ -static inline int timeval_ms_cmp(struct timeval *ptv, unsigned long ms) { - assert(ptv); - - // We use those if statement instead of a - expression because of possible - // truncation problem from long to int. - auto sec = (long)(ms / MS_PER_SEC); - if (ptv->tv_sec > sec) { - return 1; - } - if (ptv->tv_sec < sec) { - return -1; - } - - auto usec = (long)(ms % MS_PER_SEC * (US_PER_SEC / MS_PER_SEC)); - if (ptv->tv_usec > usec) { - return 1; - } - if (ptv->tv_usec < usec) { - return -1; - } - - return 0; -} - -/** - * Subtracting two struct timeval values. - * - * Taken from glibc manual. - * - * Subtract the `struct timeval' values X and Y, - * storing the result in RESULT. - * Return 1 if the difference is negative, otherwise 0. - */ -static inline int -timeval_subtract(struct timeval *result, struct timeval *x, struct timeval *y) { - /* Perform the carry for the later subtraction by updating y. */ - if (x->tv_usec < y->tv_usec) { - long nsec = (y->tv_usec - x->tv_usec) / 1000000 + 1; - y->tv_usec -= 1000000 * nsec; - y->tv_sec += nsec; - } - - if (x->tv_usec - y->tv_usec > 1000000) { - long nsec = (x->tv_usec - y->tv_usec) / 1000000; - y->tv_usec += 1000000 * nsec; - y->tv_sec -= nsec; - } - - /* Compute the time remaining to wait. - tv_usec is certainly positive. */ - result->tv_sec = x->tv_sec - y->tv_sec; - result->tv_usec = x->tv_usec - y->tv_usec; - - /* Return 1 if result is negative. */ - return x->tv_sec < y->tv_sec; -} - /** * Subtracting two struct timespec values. * @@ -661,21 +538,6 @@ static inline struct timespec get_time_timespec(void) { return tm; } -/** - * Print time passed since program starts execution. - * - * Used for debugging. - */ -static inline void print_timestamp(session_t *ps) { - struct timeval tm, diff; - - if (gettimeofday(&tm, NULL)) - return; - - timeval_subtract(&diff, &tm, &ps->time_start); - fprintf(stderr, "[ %5ld.%06ld ] ", diff.tv_sec, diff.tv_usec); -} - /** * Wrapper of XFree() for convenience. * @@ -686,11 +548,6 @@ static inline void cxfree(void *data) { XFree(data); } -_Noreturn static inline void die(const char *msg) { - puts(msg); - exit(1); -} - /** * Return the painting target window. */ @@ -787,10 +644,6 @@ static inline long winprop_get_int(winprop_t prop) { void force_repaint(session_t *ps); -bool vsync_init(session_t *ps); - -void vsync_deinit(session_t *ps); - /** @name DBus handling */ ///@{ diff --git a/src/compton.c b/src/compton.c index 82e911aa..a52e8d12 100644 --- a/src/compton.c +++ b/src/compton.c @@ -932,18 +932,14 @@ static bool register_cm(session_t *ps) { // Acquire X Selection _NET_WM_CM_S? if (!ps->o.no_x_selection) { - unsigned len = strlen(REGISTER_PROP) + 2; - int s = ps->scr; + const char register_prop[] = "_NET_WM_CM_S"; xcb_atom_t atom; - while (s >= 10) { - ++len; - s /= 10; + char *buf = NULL; + if (asprintf(&buf, "%s%d", register_prop, ps->scr) < 0) { + log_fatal("Failed to allocate memory"); + return false; } - - auto buf = ccalloc(len, char); - snprintf(buf, len, REGISTER_PROP "%d", ps->scr); - buf[len - 1] = '\0'; atom = get_atom(ps->atoms, buf); free(buf); diff --git a/src/opengl.c b/src/opengl.c index 11e4030c..d106d4b4 100644 --- a/src/opengl.c +++ b/src/opengl.c @@ -30,6 +30,10 @@ #include "opengl.h" +#ifndef GL_TEXTURE_RECTANGLE +#define GL_TEXTURE_RECTANGLE 0x84F5 +#endif + static inline XVisualInfo *get_visualinfo_from_visual(session_t *ps, xcb_visualid_t visual) { XVisualInfo vreq = {.visualid = visual}; int nitems = 0; diff --git a/src/render.c b/src/render.c index ce7dfd80..e524d0ba 100644 --- a/src/render.c +++ b/src/render.c @@ -15,6 +15,11 @@ #ifdef CONFIG_OPENGL #include "backend/gl/glx.h" #include "opengl.h" + +#ifndef GLX_BACK_BUFFER_AGE_EXT +#define GLX_BACK_BUFFER_AGE_EXT 0x20F4 +#endif + #endif #include "compiler.h" @@ -31,6 +36,10 @@ #include "backend/backend_common.h" #include "render.h" +#define XRFILTER_CONVOLUTION "convolution" +#define XRFILTER_GAUSSIAN "gaussian" +#define XRFILTER_BINOMIAL "binomial" + /** * Bind texture in paint_t if we are using GLX backend. */ diff --git a/src/win.c b/src/win.c index 59d3fa1d..e7d73115 100644 --- a/src/win.c +++ b/src/win.c @@ -43,6 +43,7 @@ #include "win.h" #define OPAQUE 0xffffffff +#define WIN_GET_LEADER_MAX_RECURSION 20 /// Generate a "return by value" function, from a function that returns the /// region via a region_t pointer argument.