Refactor EffectFactory

Open
#656 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Refactor
Clarity
Mostly clear
Activity status
Quiet
Tech stack
cpp

Research direction

Compare the DX11 EffectFactory implementation with the DX12 split between IEffectFactory and IEffectTextureFactory. Trace how EffectFactory, NPREffectFactory, DGSLEffectFactory, and PBREffectFactory create effects and material textures, then assess the breaking changes for existing client code. Done means reducing duplication while providing either a compatible port or a documented backward-compatibility path.

Written by the indexing model from the issue text.

Description

enhancement

In DX11, IEffectFactory both creates effects and the textures associated with the materials. In DX12, this is separated into IEffectFactory and IEffectTextureFactory.

Refactoring the DX11 implementation to be similar would reduce some of the code duplication in EffectFactory, NPREffectFactory, DGSLEffectFactory, and PBREffectFactory.

The main challenge is there's no way to do this without introducing breaking changes which could impact client code. A simple port would be needed or some way to maintain backward compat would be ideal.

Dominant language
C++
Stars
2.9k
Forks
538
Avg merge
14h 50m
Merged PRs (30d)
4

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from microsoft/DirectXTK

All issues in microsoft/DirectXTK

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.