glfw/src/cache.h
Emmanuel Gil Peyrot 04922c63de input: Cache parsed mappings.h
Parsing this file was taking the most time out of glfwInit(), or about
14ms on my PinePhone before the start of this series.  In the case where
the string is already in cache, it now takes only 0.95ms.

It would be possible to make that even faster, and additionally to keep
that page shared with other GLFW processes, by using mmap() instead, but
for now I opted to not change the memory representation.
2021-03-26 09:56:54 +01:00

45 lines
1.6 KiB
C

//========================================================================
// GLFW 3.4 - www.glfw.org
//------------------------------------------------------------------------
// Copyright (c) 2021 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
//
// This software is provided 'as-is', without any express or implied
// warranty. In no event will the authors be held liable for any damages
// arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it
// freely, subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented; you must not
// claim that you wrote the original software. If you use this software
// in a product, an acknowledgment in the product documentation would
// be appreciated but is not required.
//
// 2. Altered source versions must be plainly marked as such, and must not
// be misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source
// distribution.
//
//========================================================================
// Please use C89 style variable declarations in this file because VS 2010
//========================================================================
#pragma once
#include "internal.h"
#ifndef HAVE_XXHASH
#error "libxxhash is required for the compose cache"
#endif
GLFWbool
cacheGetPathFromString(const char *string, char **cachePath);
GLFWbool
cacheRead(const char *path, _GLFWmapping** out, int* count);
void
cacheWrite(const char *path, const _GLFWmapping* mappings, int count);