Skip to content

Instantly share code, notes, and snippets.

Avatar

Nicolas Lelong rotoglup

View GitHub Profile
@rotoglup
rotoglup / minimal-metal-app.mm
Created Jan 22, 2021
Minimal OSX Metal Application, single file
View minimal-metal-app.mm
#include <Cocoa/Cocoa.h>
#import <Metal/Metal.h>
#import <MetalKit/MetalKit.h>
#import <simd/simd.h>
// BUG: on OSX 10.15.6, the App menu is not clickable at the first activation, but becomes so after switching to another app
//----------------------------------------------------------------------------
@rotoglup
rotoglup / Code refactor, thoughts.md
Last active Dec 7, 2020
Code refactor, thoughts
View Code refactor, thoughts.md

Some thoughts about code structure, as I read code, and find some things some hard to follow than others.

Booleans are values

(m_ui.SomeCheckBox->checkState() == Qt::CheckState::Checked) ? true : false

Should probably just be

@rotoglup
rotoglup / GIT usage.md
Last active Nov 24, 2020
Notes about my usage of GIT
View GIT usage.md

My GIT habits :

  • On Windows, through GIT bash

  • No UI, except occasional gitk --all& to visually check branches and commits

  • Use git fetch then git merge --ff-only origin/master

    • I don't like git pull auto-merging feature that messes up the history
  • Use git add -p to :

    • make a quick review of changes before commit
View 202011 - Inspiring non-programming.md
@rotoglup
rotoglup / MetalConstants.h
Last active Oct 1, 2020
Definition of some Metal constant values
View MetalConstants.h
//******************************************************************************
//
// Copyright (c) 2016 Microsoft Corporation. All rights reserved.
//
// This code is licensed under the MIT License (MIT).
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
View 202006 - notes about tools.md

Conan (on Windows)

  • conan search <name> -r conan-center

What I liked :

  • easy install through python's pip

What I don't like :

View 202005 - notes about system configuration
* `Set-NetConnectionProfile -InterfaceAlias "Ethernet" -NetworkCategory Private`
@rotoglup
rotoglup / 202005 - notes about c-c++ libraries.md
Last active Nov 15, 2020
Random notes while using random libraries
View 202005 - notes about c-c++ libraries.md
@rotoglup
rotoglup / 202005 - threejs gotchas.md
Last active May 18, 2020
A personal list of traps if fell into using threejs
View 202005 - threejs gotchas.md

applyMatrix on Geometry does not flip faces when needed

applyMatrix, on Geometry or BufferGeometry, does not flip faces indices when applying a matrix that flips normals (determinant < 0).

see https://github.com/mrdoob/three.js/issues/17361

View 202003 - a look into threejs shaders.md

Based on my looking at ThreeJS r115dev source code, while trying to figure out how to customize the lighting by writing my own shader.

Materials

ThreeJS has the following Material classes :

  • MeshBasicMaterial, not affected by lights
  • MeshLambertMaterial: lighting is computed at each vertex, for diffuse lighting, and interpolated in gouraud like fashion