{"adoption": {"forks": 52, "observed_at": "2026-08-28T04:04:47.166402+00:00", "stars": 1459}, "canonical_url": "https://ross.abutalabs.com/products/guide-to-modern-opengl-functions", "card": {"archived": false, "artifact_type": "learning-resource", "description": "A guide to using modern OpenGL functions.", "domain": ["graphics", "tutorials", "developer-tools"], "enriched": true, "function": ["documentation", "graphics"], "health_score": 20, "homepage": null, "language": null, "license": "CC0-1.0", "license_family": "permissive", "maturity": "stable", "member_repos": ["fendevel/Guide-to-Modern-OpenGL-Functions"], "name": "fendevel/Guide-to-Modern-OpenGL-Functions", "platform": ["cross-platform", "cpp"], "pushed_at": "2021-11-08T08:01:54+00:00", "repo": "fendevel/Guide-to-Modern-OpenGL-Functions", "stars": 1459, "tags": ["opengl", "direct-state-access", "dsa", "graphics-programming", "gpu-programming", "textures", "texture-atlas", "texture-view", "shader-pipelines", "persistent-mapping", "guide", "cc0", "game-development"], "topics": ["dsa", "modern", "modern-opengl-functions", "opengl", "textureview", "texture-atlas", "pipeline-object", "uniform", "direct-state-access", "modern-opengl", "opengl-dsa"], "urls": [], "use_cases": ["learn modern OpenGL direct state access functions", "understand how to use glCreateTextures and glNamedBufferData", "compare texture atlases vs texture arrays in OpenGL", "set up mix-and-match shader program pipelines", "use persistent mapping for faster buffer reads and writes", "retrieve uniform names from an OpenGL shader program", "get detailed debug messages from OpenGL debug output"], "what_it_is": "A written guide explaining how to use modern OpenGL features, with a focus on Direct State Access (DSA) APIs for textures, buffers, and framebuffers. It also covers related topics like debug output, texture atlases vs arrays, texture views, program pipelines, and persistent mapping, but explicitly does not teach rendering techniques.", "when_to_avoid": ["You are looking for a library or code framework rather than a written tutorial", "You want to learn OpenGL rendering techniques or graphics programming from scratch", "You need beginner-level OpenGL introduction rather than coverage of advanced API features"], "when_to_choose": ["You want a concise reference for DSA-era OpenGL API functions that are poorly documented elsewhere", "You are migrating older bind-heavy OpenGL code to modern direct-state-access style", "You need practical explanations of texture views, program pipelines, or persistent mapped buffers"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/guide-to-modern-opengl-functions", "repo": "fendevel/Guide-to-Modern-OpenGL-Functions", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.166402+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:35:27.578044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99935a69c8e5a991c9f1da9ec0f25bc365094271988388a9ac63af1026c29b9a", "fetched_at": "2026-08-28T04:04:47.166402+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fendevel/Guide-to-Modern-OpenGL-Functions"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.166402+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:35:27.578044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99935a69c8e5a991c9f1da9ec0f25bc365094271988388a9ac63af1026c29b9a", "fetched_at": "2026-08-28T04:04:47.166402+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fendevel/Guide-to-Modern-OpenGL-Functions"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:35:27.578044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99935a69c8e5a991c9f1da9ec0f25bc365094271988388a9ac63af1026c29b9a", "fetched_at": "2026-08-28T04:04:47.166402+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fendevel/Guide-to-Modern-OpenGL-Functions"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.166402+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.166402+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.166402+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:35:27.578044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99935a69c8e5a991c9f1da9ec0f25bc365094271988388a9ac63af1026c29b9a", "fetched_at": "2026-08-28T04:04:47.166402+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fendevel/Guide-to-Modern-OpenGL-Functions"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.166402+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.166402+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:35:27.578044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99935a69c8e5a991c9f1da9ec0f25bc365094271988388a9ac63af1026c29b9a", "fetched_at": "2026-08-28T04:04:47.166402+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fendevel/Guide-to-Modern-OpenGL-Functions"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.166402+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.166402+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.166402+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:35:27.578044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99935a69c8e5a991c9f1da9ec0f25bc365094271988388a9ac63af1026c29b9a", "fetched_at": "2026-08-28T04:04:47.166402+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fendevel/Guide-to-Modern-OpenGL-Functions"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.166402+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.166402+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:35:27.578044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99935a69c8e5a991c9f1da9ec0f25bc365094271988388a9ac63af1026c29b9a", "fetched_at": "2026-08-28T04:04:47.166402+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fendevel/Guide-to-Modern-OpenGL-Functions"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:35:27.578044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99935a69c8e5a991c9f1da9ec0f25bc365094271988388a9ac63af1026c29b9a", "fetched_at": "2026-08-28T04:04:47.166402+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fendevel/Guide-to-Modern-OpenGL-Functions"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:35:27.578044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99935a69c8e5a991c9f1da9ec0f25bc365094271988388a9ac63af1026c29b9a", "fetched_at": "2026-08-28T04:04:47.166402+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fendevel/Guide-to-Modern-OpenGL-Functions"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:35:27.578044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99935a69c8e5a991c9f1da9ec0f25bc365094271988388a9ac63af1026c29b9a", "fetched_at": "2026-08-28T04:04:47.166402+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fendevel/Guide-to-Modern-OpenGL-Functions"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3622, "days_push": 1759, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}