MCPcopy Create free account
hub / github.com/crownengine/crown / parse_render_states

Method parse_render_states

src/resource/shader_resource.cpp:1942–1972  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1940 }
1941
1942 s32 parse_render_states(const char *json)
1943 {
1944 TempAllocator4096 ta;
1945 JsonObject render_states(ta);
1946 RETURN_IF_ERROR(sjson::parse_object(render_states, json));
1947
1948 auto cur = json_object::begin(render_states);
1949 auto end = json_object::end(render_states);
1950 for (; cur != end; ++cur) {
1951 JSON_OBJECT_SKIP_HOLE(render_states, cur);
1952
1953 JsonObject obj(ta);
1954 RETURN_IF_ERROR(sjson::parse_object(obj, cur->second));
1955
1956 RenderState rs(default_allocator());
1957 s32 err = parse_render_state(rs, cur->second);
1958 ENSURE_OR_RETURN(SHADER_RESOURCE, err == 0, _opts);
1959
1960 DynamicString key(ta);
1961 key = cur->first;
1962
1963 RETURN_IF_FALSE(SHADER_RESOURCE, !hash_map::has(_render_states, key)
1964 , _opts
1965 , "Render state redefined: '%s'"
1966 , key.c_str()
1967 );
1968 hash_map::set(_render_states, key, rs);
1969 }
1970
1971 return 0;
1972 }
1973
1974 s32 parse_sampler_states(const char *json)
1975 {

Callers

nothing calls this directly

Calls 6

setClass · 0.85
parse_objectFunction · 0.50
beginFunction · 0.50
endFunction · 0.50
hasFunction · 0.50
c_strMethod · 0.45

Tested by

no test coverage detected